Comments (13)
The Dhrystone DMIPS/MHz seem right. I can't comment on the rest.
from freedom.
@riscveval Hi, when you make verilog for E51, have you met the following error:
[error] /root/freedom/sifive-blocks/src/main/scala/devices/mockaon/MockAONPeriphery.scala:7:8: object HasPeripheryCLINT is not a member of package freechips.rocketchip.devices.tilelink
[error] import freechips.rocketchip.devices.tilelink.HasPeripheryCLINT
[error] ^
[error] /root/freedom/sifive-blocks/src/main/scala/devices/mockaon/MockAONPeriphery.scala:16:35: not found: type HasPeripheryCLINT
[error] trait HasPeripheryMockAON extends HasPeripheryCLINT with HasPeripheryDebug { this: BaseSubsystem =>
[error] ^
Could you find type HasPeripheryCLINT in the path of your local:rocket-chip/src/main/scala/devices/tilelink/CLINT.scala??? i only can find the "CanHavePeripheryCLINT" in the CLINT.scala in my local. but it contains the HasPeripheryCLINT in github repo. it's strange.
Thanks for your help
from freedom.
@riscveval
Hi,
How do you evaluate the dhrystone of various RISCV cores? Do youo have the general bench? Now I also want to evaluate some riscv cores. Could you give me your bench of evaluation of dhrystone?
best wishes
from freedom.
@chlizheng freedom-e-sdk contains the dhrystone benchmark program. Just be sure you use the link script that includes the constant data in SRAM, otherwise it runs slowly.
make software PROGRAM=dhrystone LINK_TARGET=dhrystone
make upload PROGRAM=dhrystone
from freedom.
@brucehoult
Hi,Thanks.
Is freedom-e-sdk a general program of evaluation dhrystone for various riscv cores? I don't have it.
And now I only get the evaluation version of sifiveE21. I don't find the free-e-sdk? Could the program evaluate dhrystone of other riscv cores such as vscale,Piccolo and so on.
from freedom.
@chlizheng freedom-e-sdk contains RISC-V gcc compiler and other things for building programs for SiFive embedded RISC-V cores. It comes with configuration files (e.g. "make" include file setting the ISA and ABI, linker script) for various SiFive-supported SoC and FPGA boards. It should be possible to add configuration files for almost any other RISC-V embedded core.
You can find it at https://github.com/sifive/freedom-e-sdk
from freedom.
@brucehoult
Thanks,I'll try it.
from freedom.
Hi, now, I want to evaaluate the performance of myself riscv processor. And I use "riscv32-unknown-elf-gcc -march=rv32em -mabi=ilp32e benchmark.c" and "riscv32-unknown-elf-objdump -dr --disassembler-options=numeric,no-aliases a.out >benchmark.S" to get the instruction file and then plan to run it in myself processor. But when I check a.out and benchmark.S I find that the start address of a.out is 0x0000 but it's 0x10074 in benchmark.S. Besides, the hex value of instrustions in the two files can't match. For example, I can't find the value of a.out in the benchmark.S. Is my method wrong or the command having problems?
best wishes!
from freedom.
Maybe I should get the right instruction file. For example, in the benchmark.s one line is "100cc: 00e78c63 beq x15,x14,100e4 <deregister_tm_clones+0x28>. I use it to run in myself processor but it failed. Maybe I need the offset address rather than 100e4. How can I do it ?
from freedom.
Objdump is a pretty simple tool. It is unlikely that the output is wrong.
Why do you think that the start address for the a.out is 0x0? "objdump -f a.out" will give you the program start address. "objdump -p a.out" will show you the ELF segment info. You should see something like
LOAD off 0x00000000 vaddr 0x00010000 paddr 0x00010000 align 2**12
filesz 0x00001e54 memsz 0x00001e54 flags r-x
which says that file offset 0 gets loaded at memory offset 0x10000. The first part of the ELF file is elf headers, and if the elf headers are 0x74, then the first instruction is at 0x10074. Programs are typically not loaded at address 0, because that breaks handling for null pointers.
You have the instruction encoding, 00e78c63. You shouldn't need the raw offset. But if you really do, then you can manually decode the instruction, or you can compute it by subtracting the instruction address from the target address. The objdump output is meant to be human readable, and printing the target address not the offset is most useful to humans.
from freedom.
@jim-wilson please help to check this issue, it seems that the output of objdump is wrong.
riscv-software-src/riscv-tests#162
from freedom.
@jim-wilson
Thanks, I have misunderstanded before.
from freedom.
The 0x10000 comes from the default linker script. You can see the default linker script by running the linker with --verbose, e.g. "riscv32-unknown-elf-ld --verbose".
from freedom.
Related Issues (20)
- Attaching custom IP to freedom U500 HOT 6
- Java error during make
- L2 inclusive cache latency
- Booting Linux file system from SD and enable partition VC707-U500
- how to add MMIO peripherals to U500 design HOT 1
- problems when clone the pixman
- How to replace old kernel with new
- clk sync JTAG and Debug module
- sample code to test modes HOT 1
- Peripherals at higher Core Frequencies
- Fedora on VC707 Board
- System hangs after AXI4-Lite register read
- Spratan 6 porting issue
- Where is Class “DevKitU500FPGADesign_WithDevKit100MHz”? HOT 2
- How to Simulate e300artydevkit?
- Accessing Arty-35T DRAM HOT 1
- Verilator: mistake in installation instructions
- This project is incompatible with the latest Arty A7 35T HOT 4
- mcs failes to build (target romgen) HOT 1
- Port to my fpga board
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from freedom.