Commit graph

7203 commits

Author SHA1 Message Date
JeanRochCoulon
a8a55ae32a
Merge branch 'master' into JeanRochCoulon-patch-9
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
2024-11-04 17:40:58 +01:00
Valentin Thomazic
51543db607
fix readme links (#2575)
Fix dashboard and label links in README (see #2554 )
2024-11-04 17:33:19 +01:00
JeanRochCoulon
2e91241580
[HOT FIX] Update expected gate count result 2024-11-04 14:32:52 +01:00
Côme
9676d230fb
Mention that PR must be updated in CONTRIBUTING.md (#2568)
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-04 12:09:41 +01:00
Côme
0687510f02
document superscalar cv32a65x (frontend + decode) (#2570)
Update the documentation of cv32a65x to make it superscalar.
This first PR only updates the documentation of the frontend and decode stages.
2024-11-04 09:29:48 +01:00
André Sintzoff
7aad781b74
doc: pmp granularity equals to 8-byte (#2572) 2024-11-04 09:27:23 +01:00
Nils Wistoff
aeb0b646bf
cache_ctrl: Generalise AXI offset generation (#2573)
For `XLEN = 64`, some tools (e.g. VCS) still elaborate the offset generation block for `XLEN = 32`, throwing an elaboration error (illegal bit access). Fix this by generating the AXI offset in an equivalent, parameter-agnostic and tool-friendly way.
2024-11-04 09:24:57 +01:00
Matteo Perotti
9e670f64c6
acc_dispatcher: don't issue instruction from buffer if flushing (#2490)
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
The controller flushes the pipeline and all the unissued instructions in the presence of instructions with side effects (e.g., fence).
The accelerator dispatcher buffer (now used with the Ara RVV Vector processor) is flushed when this happens and avoids accepting a new instruction in that cycle, but it does not prevent the actual issuing of instructions during a flush cycle.
This fix avoids the issue during a flush cycle.
2024-11-01 17:04:12 +01:00
slgth
ab2283c075
doc: keep documentation in sync with the code (#2558)
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
Both the ISA and design documentations use some parameters generated from the RTL (ports, parameters).
As of now, they are committed to the repository and can be out of sync with the code.

This PR removes them from the repository and freshly generates them from the code when building HTML files.

This PR also removes prebuilt HTML files (design & ISA docs) and generates them when building the top-level Read the Docs documentation (make -C docs).
2024-10-25 12:27:09 +02:00
Jean-Roch Coulon
01c636dd55 report_benchmarks.py: update results
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
2024-10-23 18:24:38 +02:00
Jean-Roch Coulon
61c38ea459 Install Verilator only if DV_SIMULATORS == veri-testharness 2024-10-23 18:24:38 +02:00
Jean-Roch Coulon
9ceab195fd Clean-up: Remove unused regression suites and tools from CI job scripts 2024-10-23 18:24:38 +02:00
Jean-Roch Coulon
6fc8d60c14 Dhrystone_smoke.sh: smoke-smoke is done on dhrystone for the cv32a65x configuration 2024-10-23 18:24:38 +02:00
Jean-Roch Coulon
8a457272b7 Split smoke-tests.sh into 3 tests to speed-up CI timing execution of light stage 2024-10-23 18:24:38 +02:00
Jean-Roch Coulon
ce24338d5b Run 4 iterations of coremark to improve results 2024-10-23 18:24:38 +02:00
Jean-Roch Coulon
fd6037fefe Set BHTEntries=128, cache=WT and scoreboardentries=8, Icache size=16384 to improve Coremark and Dhrystone results 2024-10-23 18:24:38 +02: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
Jean-Roch Coulon
1d0076eec3 smoke-hwconfig: run with vcs-uvm and use return0 test to speed-up CI light stage timing execution 2024-10-23 18:24:38 +02:00
Jean-Roch Coulon
8e605df1f9 Declare VLEN as new CVA6 parameter 2024-10-23 18:24:38 +02:00
Jean-Roch Coulon
4ca7a3ae38 Fix: Replace riscv_pkg:VLEN by CVA6Cfg.VLEN 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
Anouar
20b64e8939
Performance tb (#2562)
For reminder, the option --issrun_opts="+tb_performance_mode" allows to disable UVM features like assertion and log generation to reduce simulation time.
2024-10-23 13:11:25 +02:00
Moritz Schneider
21dc824040
Fix pmpaddr read logic considering G=2 (#2469)
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
fixes #2465
2024-10-23 08:54:25 +02:00
Riccardo Tedeschi
53472eb026
Move timing statement outside of always_comb block (#2552)
Fix following requirement:

The assertion included in the always_comb block apparently violates the requirements in [section 9.2.2.2.2 of the SystemVerilog standard](https://ieeexplore.ieee.org/document/10458102):

Statements in an always_comb shall not include those that block, have blocking timing or event
controls, or fork-join statements.
2024-10-23 07:32:49 +02:00
Nils Wistoff
b4d000bb77
cv64a6_imafdch_sv39_wb_config: Fix undefined parameter (#2513)
The parameter `CVA6ConfigTechnoCut` is undefined and causes elaboration
errors. Align this with the other configurations and set it to constant `0`.
2024-10-23 06:12:17 +02:00
Côme
c1c2f9d922
ci: print results in job logs (#2561)
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 modification allows:
- printing the results in the terminal
- running the script from the terminal (without the environment variables from CI)
The yaml report is only built in CI, but the results are always printed.
2024-10-22 19:03:46 +02:00
André Sintzoff
67a6ae966c
update riscv-isa-manual to riscv-isa-release-2c07aa2-2024-10-18 (#2560)
Since last riscv-isa-manual update (CVA6 commit 3059b1cb2):
        - Privileged Architecture 1.13 ratified
        - minor documentation changes
        - wavedrom file renamed to .edn
2024-10-22 14:44:02 +02:00
Côme
0bf937a772
increase code coverage in commit stage (#2555)
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
`exception_o.valid` is always 0 here because the context requires:

- `commit_ack_o[0]`
- `commit_instr_i[0].fu != CSR`

Proof.

***********************************************************
We have `commit_ack_o[0]` and `commit_instr_i[0].fu != CSR`
We need to prove `!exception_o.valid`.
***********************************************************

`exception_o.valid` is built such that:
    `exception_o.valid => !commit_drop_i[0] && (csr_exception_i.valid || commit_instr_i[0].ex.valid)`
By contraposition:
    `!(!commit_drop_i[0] && (csr_exception_i.valid || commit_instr_i[0].ex.valid)) => !exception_o.valid`
By De Morgan:
    `commit_drop_i[0] || !(csr_exception_i.valid || commit_instr_i[0].ex.valid) => !exception_o.valid`
    `commit_drop_i[0] || (!csr_exception_i.valid && !commit_instr_i[0].ex.valid) => !exception_o.valid`
    `(commit_drop_i[0] || !csr_exception_i.valid) && (commit_drop_i[0] || !commit_instr_i[0].ex.valid) => !exception_o.valid`
Goal split.

***********************************************************
We have `commit_ack_o[0]` and `commit_instr_i[0].fu != CSR`
We need to prove both:
1.`commit_drop_i[0] || !csr_exception_i.valid`
2. `commit_drop_i[0] || !commit_instr_i[0].ex.valid`
***********************************************************

`csr_exception_i.valid` is built such that (see `core/csr_regfile.sv`):
    `csr_exception_i.valid => commit_instr_i[0].fu == CSR`
By contraposition:
    `commit_instr_i[0].fu != CSR => !csr_exception_i.valid`
Because `commit_instr_i[0].fu != CSR`:
    `!csr_exception_i.valid`
By implication:
    `commit_drop_i[0] || !csr_exception_i.valid`
Goal 1 reached.

`commit_ack_o[0]` is built such that:
    `commit_ack_o[0] => commit_instr_i[0].ex.valid && commit_drop_i[0] || !commit_instr_i[0].ex_valid`
Which can be simplified (AB+!A = AB+!A(B+1) = AB+!AB+!A = (A+!A)B+!A = B+!A):
    `commit_ack_o[0] => commit_drop_i[0] || !commit_instr_i[0].ex_valid`
Because `commit_ack_o[0]`:
    `commit_drop_i[0] || !commit_instr_i[0].ex.valid`
Goal 2 reached.
Qed.
2024-10-18 07:02:07 +00:00
Zbigniew Chamski
cff48e4c75
Add tandem verification documentation (#2553)
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-10-17 11:38:54 +02:00
André Sintzoff
48480c72d0 tristan doc: move files to sub-directory 2024-10-17 08:56:21 +02:00
André Sintzoff
a0f9deabff tristan: add 2024 work 2024-10-17 08:56:21 +02:00
André Sintzoff
be4a6ee364 tristan_verification_specifications.adoc: 2023 version 2024-10-17 08:56:21 +02:00
Jalali
7394941220
Interrupt verif : Implement clear mechanism in interrupt's agent (#2527)
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
* INTERRUPT VERIF : Implement interrupt clear mechanism

* Interrupt Verif : Add irq_timeout to exit when we failed to write into irq_add

Also change uvm_warining to uvm_info

* Fix comment
2024-10-16 11:50:56 -04:00
AngelaGonzalezMarino
1de0da8d96
always update prediction output based on RAM content (#2549)
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-10-16 16:05:48 +02:00
AEzzejjari
dff627162b
Add an option to disable AXI assertions from the command line (#2545)
The AXI assertions are enabled by default. To disable them, you need to add -issrun_opts="+uvmt_set_axi_assert_cfg=0" to the command line.
2024-10-16 08:37:40 +02:00
JeanRochCoulon
c8f2c39e48
Use uvm testbench to run gate simulations (#2548)
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-10-16 07:08:59 +02:00
Anouar
9c3aea232f
Performance tb (#2543) 2024-10-11 16:57:45 +02:00
JeanRochCoulon
7ae870e02f
cv32a65x CI: Enlarge cache to increase bench result and switch from -O3 to -Os compiler option (#2541)
* .gitlab-ci.yml: Enlarge cv32a65x cache size

* Dhrystone_smoke.sh: switch from -O3 to -Os option
2024-10-11 09:42:37 +02:00
André Sintzoff
5131fb030c
doc PMP: rephrase PMP configuration description (#2540) 2024-10-11 09:12:22 +02:00
Jérôme Quévremont
0649adc0b5
Adding 10xE (#2533) 2024-10-09 17:50:31 +02:00
Guillaume Chauvon
fea98c65de
[HOTFIX] Fix Handling of CVXIF instruction being interrupted (#2537) 2024-10-09 16:34:45 +02:00
Zbigniew Chamski
2b3a82f2cc Fix CVV#2531: Make mie.MSIE and mip.MSIP RO-zero, prevent SW writes to mip. 2024-10-08 22:53:32 +02:00
Jean-Roch Coulon
b744f9bb09 Create job dedicated to benchmark CVA6 2024-10-08 21:14:33 +02:00
Jean-Roch Coulon
e7f423404f Set clock period at 20ns and fix vcs-uvm simulation time 2024-10-08 21:14:33 +02:00
Jean-Roch Coulon
2ec24264e4 Add vcs-uvm-gate ISS target 2024-10-08 21:14:33 +02:00
Cesar Fuguet
8f06d41850
Update RESOURCES.md (#2530)
Add an item pointing to the HPDcache in the related building blocks section

Co-authored-by: Jérôme Quévremont <jerome.quevremont@thalesgroup.com>
2024-10-04 18:45:34 +02:00
JeanRochCoulon
08c81658ec
Display report at the end of dhrystone and coremark executions (#2529) 2024-10-04 17:52:06 +02:00
Jérôme Quévremont
4a642d35d9
Resources and ecosystem (#2514) 2024-10-04 15:21:17 +02:00