GithubHelp home page GithubHelp logo

PPA Comparison about freedom HOT 13 OPEN

sifive avatar sifive commented on June 2, 2024
PPA Comparison

from freedom.

Comments (13)

terpstra avatar terpstra commented on June 2, 2024

The Dhrystone DMIPS/MHz seem right. I can't comment on the rest.

from freedom.

IC-Dream avatar IC-Dream commented on June 2, 2024

@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.

chlizheng avatar chlizheng commented on June 2, 2024

@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.

brucehoult avatar brucehoult commented on June 2, 2024

@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.

chlizheng avatar chlizheng commented on June 2, 2024

@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.

brucehoult avatar brucehoult commented on June 2, 2024

@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.

chlizheng avatar chlizheng commented on June 2, 2024

@brucehoult
Thanks,I'll try it.

from freedom.

chlizheng avatar chlizheng commented on June 2, 2024

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.

chlizheng avatar chlizheng commented on June 2, 2024

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.

jim-wilson avatar jim-wilson commented on June 2, 2024

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.

IC-Dream avatar IC-Dream commented on June 2, 2024

@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.

chlizheng avatar chlizheng commented on June 2, 2024

@jim-wilson
Thanks, I have misunderstanded before.

from freedom.

jim-wilson avatar jim-wilson commented on June 2, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.