Ibex to CVE2: necessary design and other coding modifications #296
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I made a list of changes related to the remaining items of the transition from Ibex to CVE2 conversion #54.
cve2_configs.yaml
.lowrisc: cve2
toopenhwgroup:cve2
, as it is the practice for OpenHW's FuseSoC core files.build-simple-system build-arty-100
,build-csr-test
,build-simple-system
make targets of the mainMakefile
file, as they were previously stripped out from the code.sec
target for the Sequential Equivalence Checking (SEC) script, and a generalclean
target.bhv/cve2_sim_clock_gate.sv
,rtl/cve2_clock_gating.v
andsyn/rtl/prim_clock_gating.v
. I substituted them forrtl/cve2_clock_gate.sv
only, keeping the disclaimer that it should not be used for actual physical synthesis (ASIC or FPGA).rvfi_instr_if
) ofrtl/cve2_core.sv
, so that it can be properly linted by Verilator. Not needed by thecv32e20-dv
functional verification environment as this interface is bound to the testbench, which get its type by CORE-V-VERIF's uvma_rvfi_instr_if.sv.clknrst_if
andrvfi_csr_if
onrtl/cve2_cs_registers.sv
.simutil_get_scramble_key
andsimutil_get_scramble_nonce
, that are needed for the creation of a simulation model of the CVE2 model for the RISCV Compliance test on thertl/cve2_if_stage.sv
- a solution borrowed from Ibex's project.regfile_e
onrtl/cve2_pkg.sv
, as we don't support multiple implementations of the Registers File.rtl/cve2_tracer.sv
fordecoded_str
,data_accessed
andinsn_is_compressed
as it not was passing linting because Verilator treated them as multidriven signals, instead of just programming variables.scripts/sec/sec.sh
to always use as work and output directory the pathbuild/
, as FuseSoC build do.vendor/
patch files and commented out the lines used to reference them onvendor/lowrisc_ip.vendor.hjson
.I know this is a big list of changes, which are linked to each other in varying degrees. So, for that, I ask your patience and to test them locally as necessary. Naturally, I am happy to discuss each item.