Commit graph

131 commits

Author SHA1 Message Date
Jalali
e4a8ffb1f6
Code coverage : exclude second instanciation (#2925)
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
of instr_scan and cva6_fifo_v3

Signed-off-by: Ayoub Jalali <ayoub.jalali@external.thalesgroup.com>
2025-04-14 14:30:24 +02:00
Valentin Thomazic
37049ee788
add macros for assertions else clauses (fix #1624) (#2888) 2025-04-01 12:25:36 +02:00
Zbigniew Chamski
c2794df8e6
[CV32A6*X] Disable Zifencei across the verification infrastructure. (#2822)
Some checks failed
bender-up-to-date / bender-up-to-date (push) Has been cancelled
ci / build-riscv-tests (push) Has been cancelled
ci / execute-riscv64-tests (push) Has been cancelled
ci / execute-riscv32-tests (push) Has been cancelled
This MR implements the non-RTL part of CVA6 project changes needed for #2734:
* changes to scripts
* changes to configuration files
* turn off Zifencei support in RTL configuration.
2025-03-13 06:12:47 +01:00
Jalali
6b363dd0a7
FENCE_i : Remove fence_i from HVP and core-dv (#2811)
This MR relative to disabling fence_i from UVM TB

Waiting disabling fence_i in RTL cv32a60x configue
2025-03-06 13:21:49 +01:00
Ayoub Jalali
ac0d631f37 Update code coverage report for only cva6 pipeline 2025-03-05 17:44:35 +01:00
Yannick Casamatta
1d64e0e440 Add workflow package in uvmt to manage constant like is gatesimu 2025-03-05 17:44:35 +01:00
Anouar
45c05de3af OBI Agent and assertions integration for fetch bus (#2257) 2025-03-05 17:44:35 +01:00
Jalali
81426a4b85
CVXIF VERIF : update cvxif test, and remove unused tests for cv-x-if v1.0.0 (#2808)
* Run cvxif_verif_regression job only on cv32a60x, cv32a65x & vcs-uvm
2025-03-05 15:23:36 +01:00
Jalali
dc0a848956
Disable toggle coverage & add condition coverage options (#2785)
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
Disable tgl coverage and add options to enable condition coverage for for loop and functions and tasks
2025-02-20 12:50:12 +01:00
Jalali
fd8c890def
Makefile : Add target to generate functional coverage using verdi tool (#2755)
Some checks failed
bender-up-to-date / bender-up-to-date (push) Has been cancelled
ci / build-riscv-tests (push) Has been cancelled
ci / execute-riscv64-tests (push) Has been cancelled
ci / execute-riscv32-tests (push) Has been cancelled
Co-authored-by: André Sintzoff <61976467+ASintzoff@users.noreply.github.com>
2025-01-31 14:13:36 +01:00
Jalali
70972dad54
Update rvfi_tracer and cva6.py (#2684)
* RVFI Tracer : Update tracer to support interrupts

* Randomize sv_seed by default

* Change pc64 to pc

* Fixes

* cva6.py : add the capability to create a log for sv_seed

* Tracer : keep pc64 64 targets failed

* Fix UVM seed for performance tests

---------

Co-authored-by: André Sintzoff <61976467+ASintzoff@users.noreply.github.com>
2025-01-31 13:10:27 +01:00
Cesar Fuguet
db568f3e1d
Fully support the Write-Back mode of the HPDcache in the CVA6 (#2691)
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
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
Jalali
6268d28939
Code coverage : Add option to support coverage condition with arithmetic operations (#2694)
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
Fix issue#1902
2025-01-08 18:55:08 +01:00
Munail Waqar
f7dd49efa5
Adding support for Scalar Crypto Extension (Bitmanip instructions for Cryptography, Zbkb) (#2653)
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
Introduction
This PR adds support for Zbkb extension in the CVA6 core. It also adds the documentation for this extension. These changes have been tested with self-written single instruction tests and with the riscv-arch-tests. This PR will be followed by other PRs that will add complete support for the Zkn - NIST Algorithm Suite extension.

Implementation
Zbkb Extension:
Added support for the Zbkb instruction set. It essentially expands the Zbb extension with additional instructions useful in cryptography. These instructions are pack, packh, packw, brev8, unzip and zip.

Modifications
1. A new bit ZKN was added. The complete Zkn extension will be added under this bit for ease of use. This configuration will also require the RVB (bitmanip) bit to be set.
2. Updated the ALU and decoder to recognize and handle Zbkb instructions.

Documentation and Reference
The official RISC-V Cryptography Extensions Volume I was followed to ensure alignment with ratification. The relevant documentation for the Zbkb instruction was also added.

Verification
Assembly Tests:
The instructions were tested and verified with the K module of both 32 bit and 64 bit versions of the riscv-arch-tests to ensure proper functionality. These tests check for ISA compliance, edge cases and use assertions to ensure expected behavior. The tests include:
pack-01.S
packh-01.S
packw-01.S
brev8-01.S
unzip-01.S
zip-01.S
2024-12-18 22:35:41 +01:00
Jalali
66ae110a51
CVXIF Verif : Connect CVXIF new agent (#2663)
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
2024-12-11 18:29:02 +01:00
Valentin Thomazic
5ff6b2d32e
check spike version in cva6.py (#2654)
Some checks failed
bender-up-to-date / bender-up-to-date (push) Has been cancelled
ci / build-riscv-tests (push) Has been cancelled
ci / execute-riscv64-tests (push) Has been cancelled
ci / execute-riscv32-tests (push) Has been cancelled
Spike version check seems to have been commented by mistake, this pr fixes it
2024-12-05 15:29:24 +01:00
Cra2yPierr0t
de0ebf0409
add cv64a6_imafdch_sv39 config to cva6.py (#2646)
Make cv64a6_imafdch_sv39 available from cva6.py
2024-12-04 10:27:37 +01:00
Valentin Thomazic
6ee7a7d0c2
CI fixes (#2634)
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
* Increase timeout for compliance testlist
* Switch to verilator for riscv-tests-v for faster sim
* fix reports for non tandem jobs
2024-11-27 08:00:41 +01:00
Valentin Thomazic
e571c1ced1
fix simu gate step 1: cva6.py refactor & collect report (#2621)
* cva6 refactor & cleanup to enable tandem reports generation for elf tests such as testelf for simu-gate:
   1. merge redundant functions to run directed tests in `cva6.py` (`run_c`, `run_elf`, `run_assembly` -> `run_test`)
   2. removed broken and unused functions by the way (`run_c_from_dir`, `run_assembly_from_dir`)
* collect sim reports of simu-gate job to display them in the cva6 dashboard : ⚠️ the simu gate job will still fail but the result on the dashboard will be accurate and will allow debugging
2024-11-20 18:43:22 +01:00
JeanRochCoulon
a283d3eea2
Define cv32a60x configuration (#2608)
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
2024-11-18 15:51:21 +01:00
Jalali
aea4e3d174
Remove compile-time define from Makefile and update core-v-verif HASH (#2584) 2024-11-07 13:46:46 +01:00
Jean-Roch Coulon
37a9cf733b Create dedicated spike.yaml file for cv32a65x configuration. When another configuration is selected, no spike.yaml is provided to Spike, the default internal Spike configuration is used. When hwconfig is targetedi with cv32a65x as reference, cv32a65x spike.yaml is recopied into hwconfig directory. 2024-10-23 18:24:38 +02:00
Jean-Roch Coulon
9cfadbeded Create dedicated linker scripts for cv32a65x configuration. When another configuration is targeted, the default linker script is used (config/genxxx/linker/link.ld). When hwconfig is targeted, linker scripts are recopied into hwconfig directory.
Keep only one unique linker script: link.ldi. Remove test.ld file.
2024-10-23 18:24:38 +02:00
JeanRochCoulon
45eaace82b
Revert "Multicommits to shorten smoke-tests duration, to declare VLEN as para…" (#2564)
This reverts commit 0877e8e446.
2024-10-23 18:12:49 +02:00
JeanRochCoulon
0877e8e446
Multicommits to shorten smoke-tests duration, to declare VLEN as parameter, to improve coremark results, to implement spike.yaml/linker dedicated to 65x (#2563)
- FIX: Replace riscv_pkg:VLEN by CVA6Cfg.VLEN
- Declare VLEN as new CVA6 parameter
- smoke-hwconfig: run with vcs-uvm and use return0 tests to speed-up CI light stage timing execution
- Use dedicated linker scripts for 65x configuration.
- Use dedicated spike.yaml for 65x configuration.
- Set BHTEntries=128, cache=WT, scoreboard entries=8 to improve Coremark and Dhrystone results
- Run 4 iterations of coremark to improve results
2024-10-23 17:56:06 +02:00
Jean-Roch Coulon
2ec24264e4 Add vcs-uvm-gate ISS target 2024-10-08 21:14:33 +02:00
Zbigniew Chamski
bc7eeb7b01
[interrupt verification] Add .uvmif support to global verif linker script (#2507) 2024-09-23 17:51:14 +02:00
valentinThomazic
9362816e1c
fix simulation errors not detected on ci w/ tandem (#2486) 2024-08-30 22:23:03 +02:00
JeanRochCoulon
111df66d27
fix hwconfig setup in cva6.py (#2484) 2024-08-30 17:09:23 +02:00
MarioOpenHWGroup
6249bd1929
[TANDEM] CSR Params Refactor + CSR API (#2407) 2024-08-28 12:25:41 +02:00
valentinThomazic
28affa2346
[CI] use spike tandem on smoke-tests (#2438) 2024-08-22 17:04:48 +02:00
Zbigniew Chamski
89eb77a249
[Spike tandem] Fix Yaml config files for CV32A65X. Fix Questa tandem. Add workaround for AXI end-of-test asserts. (#2436) 2024-08-19 11:09:32 +02:00
MarioOpenHWGroup
4b51643826
TANDEM Configuration fixes (#2420) 2024-08-09 12:34:40 +02:00
Zbigniew Chamski
846e1a1269
[CI DEBUG] Track cause of failures in Spike version check. (#2360) 2024-07-24 23:56:04 +02:00
valentinThomazic
e53c669df1
Enable tandem on smoke-gen tests in ci (#2357) 2024-07-12 16:05:02 +02:00
Zbigniew Chamski
3e62b0b910
[Spike Yaml] HOTFIX: Add libyaml-cpp to preload list of RTL simulators. (#2358) 2024-07-12 11:52:01 +02:00
Guillaume Chauvon
8fa590b5c3
CVXIF 1.0.0 (#2340) 2024-07-12 10:53:18 +02:00
Zbigniew Chamski
48ef515ba0
[Spike Yaml] Integrate Spike Yaml support. (#2304) 2024-07-11 08:37:37 +02:00
Jalali
2616d5e649
add UVM interrupt agent (#2309) 2024-07-05 11:54:34 +02:00
Jalali
33ab2efa83
Makefile : passing the tandem_enable value into UVM testbench (#2287) 2024-06-26 23:02:46 +02:00
Jalali
212c14e4b4
CSR verification : modify coverage based on new specification (#2261) 2024-06-14 14:01:23 +02:00
Mathieu Gouttenoire
3d00079c19
Prepare for LLVM (#2251) 2024-06-14 11:12:03 +02:00
JeanRochCoulon
cb6211bbb8
Remove cv32a6_embedded configuration (#2246) 2024-06-14 08:30:17 +02:00
Coralie Allioux
6c0cf186fc Fix ALL_SIMV_UVM_FLAGS auto-merge 2024-06-12 11:16:18 +02:00
Coralie Allioux
2c48fccb52 Remove unused variables 2024-06-12 11:16:18 +02:00
Coralie Allioux
fa2a676007 Fix incdir for uvme and uvmt + fix dpi lib 2024-06-12 11:16:18 +02:00
isabelle schmid
36098bf827 Correct uvme and uvmt path 2024-06-12 11:16:18 +02:00
isabelle schmid
fa9a36860c Add xrun-testharness support 2024-06-12 11:16:18 +02:00
Coralie Allioux
27aab922b9 Fix tohost_addr: RISCV bin must be more generic 2024-06-12 11:16:18 +02:00
isabelle schmid
4e2baff507 Fix tohost_addr and xrun flags 2024-06-12 11:16:18 +02:00