cva6/verif
Cesar Fuguet db568f3e1d
Some checks are pending
bender-up-to-date / bender-up-to-date (push) Waiting to run
ci / build-riscv-tests (push) Waiting to run
ci / execute-riscv64-tests (push) Blocked by required conditions
ci / execute-riscv32-tests (push) Blocked by required conditions
Fully support the Write-Back mode of the HPDcache in the CVA6 (#2691)
This PR modifies some components in the CVA6 to fully support the WB mode of the HPDcache.

When on WB mode, there may be coherency issues between the Instruction Cache and the Data Cache. This may happen when the software writes on instruction segments (e.g. to relocate a code in memory).

This PR contains the following modifications:

The CVA6 controller module rises the flush signal to the caches when executing a fence or fence.i instruction.
The HPDcache cache subsystem translates this fence signal to a FLUSH request to the cache (when the HPDcache is in WB mode).
Add new parameters in the CVA6 configuration packages:
DcacheFlushOnInvalidate: It changes the behavior of the CVA6 controller. When this parameter is set, the controller rises the Flush signal on fence instructions.
DcacheInvalidateOnFlush: It changes the behavior of the HPDcache request adapter. When issuing a flush, it also asks the HPDcache to invalidate the cachelines.
Add additional values to the DcacheType enum: HPDCACHE_WT, HPDCACHE_WB, HPDCACHE_WT_WB
In addition, it also fixes some issues with the rvfi_mem_paddr signal from the store_buffer.
2025-01-10 17:57:32 +01:00
..
bsp move files to a verif directory 2023-09-07 09:50:50 +02:00
core-v-verif@464bf7a0d7 Bump verif/core-v-verif from 6c1e999 to 464bf7a (#2683) 2025-01-03 11:14:15 +01:00
docs docs: update URL in CSR access DV plan (fix #2625) (#2627) 2024-11-22 15:12:57 +01:00
env CVXIF VSEQ: RD equal x10 for CUS_ADD_RS3_RTYPE (#2682) 2025-01-02 14:51:24 +01:00
regress Various fixes for CVXIF following verification. (#2678) 2024-12-20 13:28:49 +01:00
sim Fully support the Write-Back mode of the HPDcache in the CVA6 (#2691) 2025-01-10 17:57:32 +01:00
tb CVXIF Verif : Connect CVXIF new agent (#2663) 2024-12-11 18:29:02 +01:00
tests Adding support for Scalar Crypto Extension (Bitmanip instructions for Cryptography, Zbkb) (#2653) 2024-12-18 22:35:41 +01:00
.gitignore Convert DV into a submodule (#1591) 2023-11-03 11:20:08 +01:00
README.md Remove duplicate and out of date infos on verif readme (#2338) 2024-07-09 16:48:37 +02:00

CVA6: Verification Environment for the CVA6 CORE-V processor core

Directories:

  • bsp: board support package for test-programs compiled/assembled/linked for the CVA6. This BSP is used by both core testbench and uvmt_cva6 UVM verification environment.
  • regress: scripts to install tools, test suites, CVA6 code and to execute tests
  • sim: simulation environment (e.g. riscv-dv)
  • tb: testbench module instancing the core
  • tests: source of test cases and test lists

There are README files in each directory with additional information.

Verification plan

Verification plan is available only for vcs tool and located in sim/cva6.hvp, it's used within a modifier to filter out only needed features. Example sim/modifier_embedded.hvp for embedded config.

To generate the coverage database user should run at least a test or regression with coverage enabled by setting:

  • export cov=1

To view or edit verification plan use command:

  • cd sim
  • verdi -cov -covdir vcs_results/default/vcs.d/simv.vdb -plan cva6.hvp -mod modifier_embedded.hvp

To generate verification plan report in html format use command:

  • cd sim
  • urg -hvp_proj cva6_embedded -group instcov_for_score -hvp_attributes description -dir vcs_results/default/vcs.d/simv.vdb -plan cva6.hvp -mod modifier_embedded.hvp

Environment variables

Other environment variables can be set to overload default values provided in the different scripts.

The default values are:

  • DV_TARGET: cv64a6_imafdc_sv39
  • DV_SIMULATORS: veri-testharness,spike
  • DV_TESTLISTS: ../tests/testlist_riscv-tests-$DV_TARGET-p.yaml ../tests/testlist_riscv-tests-$DV_TARGET-v.yaml
  • DV_OPTS: no default value