add the EMBench benchmark as a regression and individual tests to the verification testbench
Created by: strichmo
Task Outcome
It would be a great benefit to both the 40X and 40S projects to enable a simulation suite of appropriate benchmarks to measure both current processor performance as well as deltas in performance as pipeline changes are introduced during development.
One possible source of benchmarks suitable for embedded processors would be the EMBench suite of benchmarks freely available at:
https://github.com/embench/embench-iot
This is a collection of benchmarks developed specifically for smaller RISCV processors.
A process for completing this task should include the following:
clone the package and attempt to use its build scripts to generate ELFs See if there is a user hook to insert a test_done write similar to .c files in the cv32e40p BSP Ensure the address map of the linker scripts are correct with respect to the CV32E* map Decrease simulation time to Use user hooks to measure number of cycles for the benchmark Determine how to incorporate build into cv32e40p in core-v-verif. Ideally the external package can be cloned as a "Vendor_lib" with a customization layer, and/or Makefile updates. In conjunction with Jenkins cycle performance scraping, create a regression of benchmarks
Completion Criteria
- A set of makefile targets can be used to run the EMBench suite
- A regression target enables EMBench to be executed