Skip to content

Dependency conflict when building CV32E20 simulation with FuseSoC

I am currently working on benchmarking the CV32E20 core as part of the CROC project, using the CVE2 environment.

As a first step, I created an sw/ directory where I placed the Dhrystone benchmark.
After cross-compiling and linking, I successfully generated the output files: dhrystone.elf, dhrystone.vmem, etc.

My current sw/ directory includes:

  • link.ld, crt0.S, exception.c, syscalls.c
  • dhrystone.elf, dhrystone.vmem
  • dhrystone.c, dhrystone.h, dhrystone_main.c
    (The last three were downloaded from the official RISC-V GitHub repository.)

Problem:
When I attempt to build the simulator using FuseSoC with the following command:

fusesoc --cores-root=. --cores-root=.shared/ run --target=sim --setup --build lowrisc:cve2:cve2_riscv_compliance --RV32E=0 --RV32M=cve2_pkg::RV32MNone
I get the following error related to missing or conflicting dependencies:

ERROR: Failed to resolve dependencies. Conflicting requirements:
Requirements: 'lowrisc_cve2_cve2_riscv_compliance == 0.1-0' <- 'lowrisc_cve2_cve2_top_tracing >= 0-0' <- 'lowrisc_cve2_cve2_top >= 0-0'
+lowrisc_cve2_cve2_top_tracing-0.1-0 was ignored because it depends on missing packages
Requirements: 'lowrisc_cve2_cve2_riscv_compliance == 0.1-0' <- 'lowrisc_cve2_cve2_top_tracing >= 0-0'
lowrisc_cve2_cve2_riscv_compliance-0.1-0 requires (+lowrisc_cve2_cve2_top_tracing-0.1-0)
Requirements: 'lowrisc_cve2_cve2_riscv_compliance == 0.1-0' Install command rule (+lowrisc_cve2_cve2_riscv_compliance-0.1-0)

Previously, I tried modifying and removing some dependency files (particularly those related to assertions and coverage), but that led to further issues with missing Python dependencies during the build.

My question is:

Is it possible to build and run the Dhrystone benchmark on the CV32E20 core using this environment?

Am I missing some mandatory FuseSoC .core or source files needed for a successful simulation build?

Any guidance or suggestions would be greatly appreciated.