mirror of
https://github.com/openhwgroup/cvw
synced 2025-02-11 06:05:49 +00:00
added changes to the testbench and benchmarks/coremark to support running the addins directory without the fpu
This commit is contained in:
parent
67fd3be9d4
commit
1e8ccf3449
@ -1,7 +1,8 @@
|
|||||||
#cmbase=../../addins/coremark
|
|
||||||
PORT_DIR = $(CURDIR)/riscv64-baremetal
|
PORT_DIR = $(CURDIR)/riscv64-baremetal
|
||||||
cmbase=../../addins/coremark
|
# cmbase=../../addins/coremark
|
||||||
work_dir=$(cmbase)/work
|
cmbase= ../riscv-coremark/coremark
|
||||||
|
work_dir= ../../benchmarks/coremark/work
|
||||||
|
XLEN ?=64
|
||||||
sources=$(cmbase)/core_main.c $(cmbase)/core_list_join.c $(cmbase)/coremark.h \
|
sources=$(cmbase)/core_main.c $(cmbase)/core_list_join.c $(cmbase)/coremark.h \
|
||||||
$(cmbase)/core_matrix.c $(cmbase)/core_state.c $(cmbase)/core_util.c \
|
$(cmbase)/core_matrix.c $(cmbase)/core_state.c $(cmbase)/core_util.c \
|
||||||
$(PORT_DIR)/core_portme.h $(PORT_DIR)/core_portme.c $(PORT_DIR)/core_portme.mak \
|
$(PORT_DIR)/core_portme.h $(PORT_DIR)/core_portme.c $(PORT_DIR)/core_portme.mak \
|
||||||
@ -9,15 +10,16 @@ sources=$(cmbase)/core_main.c $(cmbase)/core_list_join.c $(cmbase)/coremark.h \
|
|||||||
|
|
||||||
$(work_dir)/coremark.bare.riscv.elf.memfile: $(work_dir)/coremark.bare.riscv
|
$(work_dir)/coremark.bare.riscv.elf.memfile: $(work_dir)/coremark.bare.riscv
|
||||||
riscv64-unknown-elf-objdump -D $< > $<.elf.objdump
|
riscv64-unknown-elf-objdump -D $< > $<.elf.objdump
|
||||||
riscv64-unknown-elf-elf2hex --bit-width 64 --input $< --output $@
|
riscv64-unknown-elf-elf2hex --bit-width $(XLEN) --input $< --output $@
|
||||||
extractFunctionRadix.sh $<.elf.objdump
|
extractFunctionRadix.sh $<.elf.objdump
|
||||||
(cd ../../pipelined/regression && (vsim -c -do "do wally-pipelined-batch.do rv64gc coremark" > $(work_dir)/coremark.sim.log))
|
(cd ../../pipelined/regression && (vsim -c -do "do wally-pipelined-batch.do rv$(XLEN)gc coremark" > $(work_dir)/coremark.sim.log))
|
||||||
cd ../../benchmarks/coremark/
|
cd ../../benchmarks/coremark/
|
||||||
|
|
||||||
$(work_dir)/coremark.bare.riscv: $(sources) Makefile
|
$(work_dir)/coremark.bare.riscv: $(sources) Makefile
|
||||||
# make -C $(cmbase) PORT_DIR=$(PORT_DIR) compile RISCV=/opt/riscv/riscv-gnu-toolchain XCFLAGS="-march=rv64imd -mabi=lp64d -mbranch-cost=1 -DSKIP_DEFAULT_MEMSET -mtune=sifive-7-series -Ofast -funroll-all-loops -fno-delete-null-pointer-checks -fno-rename-registers --param=loop-max-datarefs-for-datadeps=0 -funroll-all-loops --param=uninlined-function-insns=8 -fno-tree-vrp -fwrapv -fno-toplevel-reorder --param=max-inline-insns-size=128 -fipa-pta"
|
# make -C $(cmbase) PORT_DIR=$(PORT_DIR) compile RISCV=/opt/riscv/riscv-gnu-toolchain XCFLAGS="-march=rv64imd -mabi=lp64d -mbranch-cost=1 -DSKIP_DEFAULT_MEMSET -mtune=sifive-7-series -Ofast -funroll-all-loops -fno-delete-null-pointer-checks -fno-rename-registers --param=loop-max-datarefs-for-datadeps=0 -funroll-all-loops --param=uninlined-function-insns=8 -fno-tree-vrp -fwrapv -fno-toplevel-reorder --param=max-inline-insns-size=128 -fipa-pta"
|
||||||
# These flags were used by WD on CoreMark
|
# These flags were used by WD on CoreMark
|
||||||
make -C $(cmbase) PORT_DIR=$(PORT_DIR) compile RISCV=$(RISCV)/riscv-gnu-toolchain XCFLAGS="-march=rv64imd -mabi=lp64d -mbranch-cost=1 -DSKIP_DEFAULT_MEMSET -mtune=sifive-7-series -Ofast -funroll-all-loops -fno-delete-null-pointer-checks -fno-rename-registers --param=loop-max-datarefs-for-datadeps=0 -funroll-all-loops --param=uninlined-function-insns=8 -fno-tree-vrp -fwrapv -fipa-pta "
|
# make -C $(cmbase) PORT_DIR=$(PORT_DIR) compile RISCV=$(RISCV)/riscv-gnu-toolchain XCFLAGS="-march=rv64imd -mabi=lp64d -mbranch-cost=1 -DSKIP_DEFAULT_MEMSET -mtune=sifive-7-series -Ofast -funroll-all-loops -fno-delete-null-pointer-checks -fno-rename-registers --param=loop-max-datarefs-for-datadeps=0 -funroll-all-loops --param=uninlined-function-insns=8 -fno-tree-vrp -fwrapv -fipa-pta "
|
||||||
|
make -C $(cmbase) PORT_DIR=$(PORT_DIR) compile RISCV=$(RISCV)/riscv-gnu-toolchain XCFLAGS="-march=rv$(XLEN)imc -mabi=lp$(XLEN) -mbranch-cost=1 -DSKIP_DEFAULT_MEMSET -mtune=sifive-7-series -Ofast -funroll-all-loops -fno-delete-null-pointer-checks -fno-rename-registers --param=loop-max-datarefs-for-datadeps=0 -funroll-all-loops --param=uninlined-function-insns=8 -fno-tree-vrp -fwrapv -fipa-pta "
|
||||||
# -fno-toplevel-reorder --param=max-inline-insns-size=128 " # adding this bit caused a compiler error
|
# -fno-toplevel-reorder --param=max-inline-insns-size=128 " # adding this bit caused a compiler error
|
||||||
mkdir -p $(work_dir)
|
mkdir -p $(work_dir)
|
||||||
mv $(cmbase)/coremark.bare.riscv $(work_dir)
|
mv $(cmbase)/coremark.bare.riscv $(work_dir)
|
||||||
|
@ -210,12 +210,12 @@ CORE_TICKS get_time(void) {
|
|||||||
*/
|
*/
|
||||||
secs_ret time_in_secs(CORE_TICKS ticks) {
|
secs_ret time_in_secs(CORE_TICKS ticks) {
|
||||||
secs_ret retval=((secs_ret)ticks) / (secs_ret)EE_TICKS_PER_SEC;
|
secs_ret retval=((secs_ret)ticks) / (secs_ret)EE_TICKS_PER_SEC;
|
||||||
float retvalint = (float) retval;
|
// float retvalint = (float) retval;
|
||||||
ee_printf("RETURN VALUE FROM TIME IN SECS FUNCTION: %d\n", retvalint);
|
// ee_printf("RETURN VALUE FROM TIME IN SECS FUNCTION: %d\n", retvalint);
|
||||||
ee_printf("RETURN VALUE FROM TIME IN SECS FUNCTION: %f\n", retvalint);
|
// ee_printf("RETURN VALUE FROM TIME IN SECS FUNCTION: %f\n", retvalint);
|
||||||
ee_printf("RETURN VALUE FROM TIME IN SECS FUNCTION: %d\n", retval);
|
// ee_printf("RETURN VALUE FROM TIME IN SECS FUNCTION: %d\n", retval);
|
||||||
ee_printf("RETURN VALUE FROM TIME IN SECS FUNCTION: %f\n", retval);
|
// ee_printf("RETURN VALUE FROM TIME IN SECS FUNCTION: %f\n", retval);
|
||||||
return retvalint;
|
return retval;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
#error "Please implement timing functionality in core_portme.c"
|
#error "Please implement timing functionality in core_portme.c"
|
||||||
|
@ -28,7 +28,7 @@ Original Author: Shay Gal-on
|
|||||||
Define to 1 if the platform supports floating point.
|
Define to 1 if the platform supports floating point.
|
||||||
*/
|
*/
|
||||||
#ifndef HAS_FLOAT
|
#ifndef HAS_FLOAT
|
||||||
#define HAS_FLOAT 1
|
#define HAS_FLOAT 0
|
||||||
#endif
|
#endif
|
||||||
/* Configuration: HAS_TIME_H
|
/* Configuration: HAS_TIME_H
|
||||||
Define to 1 if platform has the time.h header file,
|
Define to 1 if platform has the time.h header file,
|
||||||
|
@ -36,7 +36,7 @@ string tvpaths[] = '{
|
|||||||
"../../tests/riscof/work/riscv-arch-test/",
|
"../../tests/riscof/work/riscv-arch-test/",
|
||||||
"../../tests/wally-riscv-arch-test/work/", //"../../tests/riscof/work/wally-riscv-arch-test/",
|
"../../tests/wally-riscv-arch-test/work/", //"../../tests/riscof/work/wally-riscv-arch-test/",
|
||||||
"../../tests/imperas-riscv-tests/work/",
|
"../../tests/imperas-riscv-tests/work/",
|
||||||
"../../benchmarks/riscv-coremark/work/",
|
"../../benchmarks/coremark/work/",
|
||||||
"../../addins/embench-iot/"
|
"../../addins/embench-iot/"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user