mirror of
https://github.com/openhwgroup/cva6.git
synced 2025-04-19 03:44:46 -04:00
Follow-up to the discussion on extending Linux support to the Ara vector processor. * Main changes: Add: Add external MMU interface to share the MMU with the external accelerator. Add avoid_neg() function used to clip negative numbers to zero. Useful for parametric array sizes and vector multipliers. Modifications: 2 commit ports by default in cv64a6_imafdcv_config_pkg. Change exception_t from localparam to param in cva6.sv. Add parameters accelerator_req_t, accelerator_resp_t, acc_mmu_req_t, and acc_mmu_resp_t to cva6.sv. Replace the fall-through register with a spill register in acc_dispatcher to decouple timing with the accelerator. Decrease cache sizes in cv64a6_imafdcv_sv39_config_pkg. Modify Bender.yml package name from ariane to cva6. Add harmless code to prevent synthesizer tool from crashing when compiling csr_regfile. * Collateral changes: Fixes: Guard some X-IF code lines with correct parameter in cva6.sv. Parametrize the tracer interface with NrCommitPorts. Add missing local dependencies to Bender.yml. --------- Co-authored-by: JeanRochCoulon <jean-roch.coulon@thalesgroup.com> |
||
---|---|---|
.. | ||
include | ||
src | ||
tb | ||
.gitignore | ||
Bender.yml | ||
formal.sby | ||
Makefile | ||
README.md |
PMP
This repository houses a purely combinatorial and parametrizable physical memory protection (PMP) unit.
Warning: The PMP unit does only check the exact byte that is addressed. If the processor wants to load a 8 byte value, then every single byte should get checked. Due to the default granularity of PMPs of 4 bytes, this only comes into play for 8byte RISC-V memory accesses. An easy fix is to increase the granularity to 8 bytes. You can do this by setting the lowest bit of conf_addr_i to 1 if the pmp is in NAPOT mode, or to 0 if the PMP is in TOR mode.