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.