OpenCores
URL https://opencores.org/ocsvn/neorv32/neorv32/trunk

Subversion Repositories neorv32

[/] [neorv32/] [trunk/] [sw/] [example/] [coremark/] [README.md] - Blame information for rev 53

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 zero_gravi
 
2
# Introduction
3
 
4
CoreMark's primary goals are simplicity and providing a method for testing only a processor's core features. For more information about EEMBC's comprehensive embedded benchmark suites, please see www.eembc.org.
5
 
6
For a more compute-intensive version of CoreMark that uses larger datasets and execution loops taken from common applications, please check out EEMBC's [CoreMark-PRO](https://www.github.com/eembc/coremark-pro) benchmark, also on GitHub.
7
 
8 38 zero_gravi
This project folder is a port of CoreMark (from the official [GitHub repository](https://github.com/eembc/coremark)) for the NEORV32 processor.
9 2 zero_gravi
 
10 38 zero_gravi
# Building
11 2 zero_gravi
 
12 38 zero_gravi
To build the executable (`neorv32_exe.bin`) of the benchmark, type:
13 2 zero_gravi
 
14 38 zero_gravi
`> make USER_FLAGS+=-DRUN_COREMARK clean_all exe`
15 2 zero_gravi
 
16 38 zero_gravi
Make sure to define `RUN_COREMARK` *when invoking* `make` (via `USER_FLAGS+=-DRUN_COREMARK`).
17 2 zero_gravi
 
18 38 zero_gravi
To build the executable for a certain CPU configuration and a certain optimization level of the benchmark, type (`rv32imc` and `O3` in this example):
19 2 zero_gravi
 
20 38 zero_gravi
`> make USER_FLAGS+=-DRUN_COREMARK MARCH=-march=rv32imc EFFORT=-O3 clean_all exe`
21 2 zero_gravi
 
22
 
23 38 zero_gravi
# Running
24 2 zero_gravi
 
25 38 zero_gravi
Upload the generated executable `neorv32_exe.bin` via the bootloader ('u' command) and execute it ('e' command):
26 2 zero_gravi
 
27 38 zero_gravi
```
28
<< NEORV32 Bootloader >>
29 2 zero_gravi
 
30 38 zero_gravi
BLDV: Nov  7 2020
31
HWV:  0x01040700
32
CLK:  0x05F5E100 Hz
33
USER: 0x10000DE0
34
MISA: 0x40901104
35
PROC: 0x007F0015
36
IMEM: 0x00008000 bytes @ 0x00000000
37
DMEM: 0x00008000 bytes @ 0x80000000
38 2 zero_gravi
 
39 38 zero_gravi
Autoboot in 8s. Press key to abort.
40
Aborted.
41 2 zero_gravi
 
42 38 zero_gravi
Available CMDs:
43
 h: Help
44
 r: Restart
45
 u: Upload
46
 s: Store to flash
47
 l: Load from flash
48
 e: Execute
49
CMD:> u
50
Awaiting neorv32_exe.bin... OK
51
CMD:> e
52
Booting...
53 2 zero_gravi
 
54 38 zero_gravi
NEORV32: Processor running at 100000000 Hz
55
NEORV32: Executing coremark (2000 iterations). This may take some time...
56 2 zero_gravi
 
57 38 zero_gravi
2K performance run parameters for coremark.
58
CoreMark Size    : 666
59
Total ticks      : 3036959876
60
Total time (secs): 30
61
Iterations/Sec   : 66
62
Iterations       : 2000
63
Compiler version : GCC10.1.0
64
Compiler flags   : -> default, see makefile
65
Memory location  : STACK
66
seedcrc          : 0xe9f5
67
[0]crclist       : 0xe714
68
[0]crcmatrix     : 0x1fd7
69
[0]crcstate      : 0x8e3a
70
[0]crcfinal      : 0x4983
71
Correct operation validated. See README.md for run and reporting rules.
72 2 zero_gravi
 
73 38 zero_gravi
NEORV32: All reported numbers only show the integer results.
74 2 zero_gravi
 
75 38 zero_gravi
NEORV32: Executed instructions      0x00000000_24b8576e
76
NEORV32: CoreMark core clock cycles 0x00000000_b5045484
77
NEORV32: Average CPI (integer part only): 4 cycles/instruction
78
```

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.