Closed davidharrishmc closed 4 months ago
Same issue happened on old gcc.
The issue is a combination of things. The #delay removal for some reason doesn't include the cache LRU state. And we are using blocking statements (=) in the always_ff block because of verilator issues. These combined cause the relative timing to get screwed up and break the simulation. I'm becoming increasingly uncomfortable with this use of blocking statements in the always_ff block.
However, removing the #1 does solve the issue. Swapping to using non-blocking (<=) also solves the issue. Both also solves the issue.
This issue is back after redoing the LRU.
I think the issue is that ImperasDV does not yet model caches, so it cannot correctly simulate cbo.inval. The DUT is correct and the ref is wrong.
Hi David, can you provide the files to reproduce the testcase please, I am struggling to configure my environment to rebuild your tests
thx Lee
Ignore this request - I have been able to build the testcase
Confirmed that this test will fail ImperasDV because ImperasDV does not model caches to properly handle CMO instructions.
Failure wavied with PR #880
After rerunning make with the latest GCC (newer than 2023-12-20), WALLY-cbom fails: