Skip to content

Fixing Access to the Main Memory by Cache/UART in Simulation#132

Open
Joao-Pedro-Cabral wants to merge 2 commits intovproc:mainfrom
Joao-Pedro-Cabral:cache_uart
Open

Fixing Access to the Main Memory by Cache/UART in Simulation#132
Joao-Pedro-Cabral wants to merge 2 commits intovproc:mainfrom
Joao-Pedro-Cabral:cache_uart

Conversation

@Joao-Pedro-Cabral
Copy link

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 (or DCACHE_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.

@ParkerJones567
Copy link
Contributor

Due to other bugs with the caches, they have been dropped from further development efforts

@Joao-Pedro-Cabral
Copy link
Author

But now, you don't use caches for simulation and in FPGA?
Because at least for me is very important to have a cache to do more realistic benchmarking.

Due to other bugs with the caches, they have been dropped from further development efforts

@ParkerJones567
Copy link
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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants