Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] "Virtual" test list fails when icache settings are modified #2252

Open
1 task done
LQUA opened this issue Jun 13, 2024 · 0 comments
Open
1 task done

[BUG] "Virtual" test list fails when icache settings are modified #2252

LQUA opened this issue Jun 13, 2024 · 0 comments
Labels
Component:RTL For issues in the RTL (e.g. for files in the rtl directory) notCV32A65X It is not an CV32A65X issue Type:Bug For bugs in the RTL, Documentation, Verification environment or Tool and Build system

Comments

@LQUA
Copy link
Contributor

LQUA commented Jun 13, 2024

Is there an existing CVA6 bug for this?

  • I have searched the existing bug issues

Bug Description

This issue can be encountered in most tests in the testlist_riscv-tests-XXXX-v test list, let's focus on the first one : rv64ui-v-add, with the target cv64a6_imafdc_sv39 (as an "all inclusive" target).

The original Icache settings for the target are :

  localparam CVA6ConfigIcacheByteSize = 16384;
  localparam CVA6ConfigIcacheSetAssoc = 4;

If we change these settings to something else, for instance

  localparam CVA6ConfigIcacheByteSize = 2048;
  localparam CVA6ConfigIcacheSetAssoc = 2;

the test rv64ui-v-add is failed.

The failure comes from the trap adress read in stval which differs from 0x2002 (SPIKE) to 0x2004 (SIMU)

After some research, I think that the issue might be related to the exception data path. In the file frontend.sv and its involved subentities, icache_dreq_i.ex.tval is somehow 'forgotten' to be replaced by icache_dreq_i.vaddr to form the new tval.
But, icache_dreq_i.vaddr depends on the icache activity and also on its topology (cache size, associativity). I have the feeling that the right trapping adress that should be used for tval is in icache_dreq_i.ex.tval, and that the following icache_dreq_i.vaddr continues to run during the exception handling, not reflecting the adress that caused the exception anymore.

@LQUA LQUA added the Type:Bug For bugs in the RTL, Documentation, Verification environment or Tool and Build system label Jun 13, 2024
@JeanRochCoulon JeanRochCoulon added notCV32A65X It is not an CV32A65X issue Component:RTL For issues in the RTL (e.g. for files in the rtl directory) labels Jun 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Component:RTL For issues in the RTL (e.g. for files in the rtl directory) notCV32A65X It is not an CV32A65X issue Type:Bug For bugs in the RTL, Documentation, Verification environment or Tool and Build system
Projects
None yet
Development

No branches or pull requests

2 participants