mirror of
https://github.com/openhwgroup/cvw.git
synced 2025-06-28 01:32:49 -04:00
Merge pull request #1385 from jordancarlin/benchmark_verilator
Benchmark verilator
This commit is contained in:
commit
78b0aade72
3 changed files with 2 additions and 35 deletions
|
@ -28,8 +28,7 @@ PORT_CFLAGS = -g -mabi=$(ABI) -march=$(ARCH) -static -falign-functions=16 \
|
|||
all: $(work_dir)/coremark.bare.riscv.elf.memfile
|
||||
|
||||
run: $(work_dir)/coremark.bare.riscv.elf.memfile
|
||||
# time wsim rv$(XLEN)gc coremark --sim verilator 2>&1 | tee $(work_dir)/coremark.sim.log
|
||||
time wsim ${CONFIG} coremark 2>&1 | tee $(work_dir)/coremark.sim.log
|
||||
time wsim --sim verilator ${CONFIG} coremark 2>&1 | tee $(work_dir)/coremark.sim.log
|
||||
|
||||
$(work_dir)/coremark.bare.riscv.elf.memfile: $(work_dir)/coremark.bare.riscv
|
||||
riscv64-unknown-elf-objdump -D $< > $<.elf.objdump
|
||||
|
|
|
@ -43,7 +43,7 @@ sim: sim_build_memfile sim_run speed
|
|||
|
||||
# launches sim to simulate tests on wally
|
||||
sim_run:
|
||||
wsim rv32gc embench --params "BPRED_LOGGER=1\'b1"
|
||||
wsim --sim verilator rv32gc embench --params "BPRED_LOGGER=1\'b1"
|
||||
|
||||
# builds the objdump based on the compiled c elf files
|
||||
objdump:
|
||||
|
|
|
@ -1,32 +0,0 @@
|
|||
# Simulation with Verilator
|
||||
|
||||
Different executables will be built for different architecture configurations, e.g., rv64gc, rv32i. A executable can run all the test suites that it can run with `+TEST=<testsuite>`.
|
||||
|
||||
Demand:
|
||||
|
||||
- Avoid unnecessary compilation by sharing the same executable for a specific configuration
|
||||
- executables are stored in `obj_dir_non_profiling` and `obj_dir_profiling` correspondingly
|
||||
- Wsim should support `-s verilator` option and run simulation with Verilator.
|
||||
|
||||
## Folder Structure
|
||||
|
||||
This folder contains the following files that help the simulation of Wally with Verilator:
|
||||
|
||||
- Makefile: simplify the usage with Verialtor
|
||||
- executables
|
||||
- `obj_dir_non_profiling`: non-profiling executables for different configurations
|
||||
- `obj_dir_profiling`: profiling executables for different configurations
|
||||
- logs in `logs` and `logs_profiling` correspondingly
|
||||
- [NOT WORKING] `logs`: contains all the logs
|
||||
|
||||
## Examples
|
||||
|
||||
```shell
|
||||
# non-profiling mode
|
||||
make WALLYCONF=rv64gc TEST=arch64i run
|
||||
# profiling mode
|
||||
make WALLYCONF=rv64gc TEST=arch64i profile
|
||||
|
||||
# remove all the temporary files, including executables and logs
|
||||
make clean
|
||||
```
|
Loading…
Add table
Add a link
Reference in a new issue