Welcome, Guest
You have to register before you can post on our site.

Username
  

Password
  





Search Forums

(Advanced Search)

Forum Statistics
» Members: 86
» Latest member: mehrdad69
» Forum threads: 24
» Forum posts: 86

Full Statistics

Latest Threads
Sharing data between PULP...
Forum: PULP General questions
Last Post: Adi
Yesterday, 08:34 AM
» Replies: 12
» Views: 802
Synthesis 8 core pulp for...
Forum: PULP General questions
Last Post: kgf
02-11-2019, 05:11 PM
» Replies: 1
» Views: 56
Error in build of Pulpiss...
Forum: PULP General questions
Last Post: kgf
02-09-2019, 02:28 PM
» Replies: 1
» Views: 83
Error Linux Cross Compile...
Forum: PULP General questions
Last Post: akurth
02-06-2019, 07:02 AM
» Replies: 3
» Views: 188
Benchmarking using Corema...
Forum: PULP General questions
Last Post: Athena
02-05-2019, 02:06 PM
» Replies: 0
» Views: 72
RISCY modifications possi...
Forum: PULP General questions
Last Post: Athena
02-01-2019, 08:57 AM
» Replies: 4
» Views: 324
Estimating Energy and Pow...
Forum: PULP General questions
Last Post: akurth
01-25-2019, 08:31 PM
» Replies: 1
» Views: 164
Accelerator wait function...
Forum: PULP General questions
Last Post: akurth
01-25-2019, 08:21 PM
» Replies: 2
» Views: 224
Where is the "get started...
Forum: PULP General questions
Last Post: Athena
01-21-2019, 09:44 AM
» Replies: 7
» Views: 504
hero-sdk for ZynqMP
Forum: PULP General questions
Last Post: dave.mcewan
01-11-2019, 12:48 PM
» Replies: 6
» Views: 923

 
  Synthesis 8 core pulp for ASIC
Posted by: Athena - 02-11-2019, 04:41 PM - Forum: PULP General questions - Replies (1)

Hello !

I want to synthesis the pulp SoC for 65 nm ASIC technology. Given that I have the Synopsys Compiler available is there a guide as to how proper synthesis of the pulp (with 8 RI5CY) cores can be carried out on the such that the hierarchy of the system is properly maintained during optimizations. 

Is there some example script available to direct the Synopsys compiler (or some other compiler) to perform proper synthesis. 
The final goal is to be able to perform power measurements on the synthesised design. Also, is this power analysis possible with the given repository of the pulp project on github?

Print this item

  Error in build of Pulpissimo RTL platform
Posted by: idoraz - 02-09-2019, 01:17 PM - Forum: PULP General questions - Replies (1)

Hello,

We installed the SDK and the toolchain on our Linux server and have QuestaSim-64 v10.0c
 installed.
When trying to generate the PULPissimo RTL platform I am getting the following error message during the build 'phase':

** Error: ../ips/common_cells/src/stream_mux.sv(18): near "localparam": syntax error, unexpected localparam
** Error: ../ips/common_cells/src/stream_demux.sv(20): near "localparam": syntax error, unexpected localparam
** Error: ../ips/common_cells/src/popcount.sv(21): near "localparam": syntax error, unexpected localparam
make[2]: *** [modelsim_libs/common_cells_lib/common_cells_all.vmake] Error 2
make[1]: *** [build] Error 2
make: *** [build] Error 2

Do you have any clue what can be the reason for this error?

Thanks,
Ido

Print this item

  Benchmarking using Coremark
Posted by: Athena - 02-05-2019, 02:06 PM - Forum: PULP General questions - No Replies

On the github platform for PULP, under pulp-rt-examples repository the coremark benchmark has been given. 

This benchmark runs for platforms like the single-core platform PULPissimo as well as the PULP (8 core platform). 

However, in both cases I have inferred that the platforms are running at a frequency of 100 MHz. 

For instance this is the output obtained for the Pulpissimo with zero riscy core:

[TB]          30495473188 - Triggering fetch enable
# [TRACER] Output filename is: trace_core_1f_0.log
# [dbg_if_soc] WRITE32 burst @1a104008 for           4 bytes.
# [TB]          30509373188 - Waiting for end of computation
# [STDOUT-CL31_PE0] 2K performance run parameters for coremark.
# [STDOUT-CL31_PE0] CoreMark Size    : 666
# [STDOUT-CL31_PE0] Total ticks      : 535261
# [STDOUT-CL31_PE0] Total time (usecs): 5352
# [STDOUT-CL31_PE0] Iterations/Sec   : 186
# [STDOUT-CL31_PE0] ERROR! Must execute for at least 10 secs for a valid result!
# [STDOUT-CL31_PE0] Iterations       : 1
# [STDOUT-CL31_PE0] Compiler version : na
# [STDOUT-CL31_PE0] Compiler flags   : na
# [STDOUT-CL31_PE0] Memory location  : STATIC
# [STDOUT-CL31_PE0] seedcrc          : 0xe9f5
# [STDOUT-CL31_PE0] [0]crclist       : 0xe714
# [STDOUT-CL31_PE0] [0]crcmatrix     : 0x1fd7
# [STDOUT-CL31_PE0] [0]crcstate      : 0x8e3a
# [STDOUT-CL31_PE0] [0]crcfinal      : 0xe714
# [STDOUT-CL31_PE0] Correct operation validated. See README.md for run and reporting rules.
# [STDOUT-CL31_PE0] CoreMark 1.0 : 186 / na na / STATIC
# [TB]          45796773188 - Received status core: 0x00000000
# ** Note: $stop    : /home/ashwini/pulp-sdk/pulpissimo-master/sim/../rtl/tb/tb_pulp.sv(679)
#    Time: 45796773188 ps  Iteration: 0  Instance: /tb_pulp
# Break at /home/ashwini/pulp-sdk/pulpissimo-master/sim/../rtl/tb/tb_pulp.sv line 679
# Stopped at /home/ashwini/pulp-sdk/pulpissimo-master/sim/../rtl/tb/tb_pulp.sv line 679
# End time: 14:51:20 on Feb 05,2019, Elapsed time: 0:05:38
# Errors: 0, Warnings: 15


From the total time taken and the total ticks fields, it can be deduced that the platform is running at a speed of 100 MHz. 

How was this frequency chosen?

Also, is there a way to change this frequency from the coremark.patch file (or any other file for that matter) that has been given with the coremark folder under pulp-rt-examples. 

Another interesting result of running the coremark example was that I obatined the same performance numbers (as listed above) for PULP and PULPissimo (with RISCY core). Does this mean that when coremark is running on PULP it is just giving the performance number of the core and the not the entire architecture? or How to interpret these values after running the coremark. Is it only evaluating the performance of a single core regardless of the platform?

Print this item

  Error Linux Cross Compiler
Posted by: Athena - 01-28-2019, 09:57 PM - Forum: PULP General questions - Replies (3)

Hello!


While following the instructions to install the RISC-V GNU compiler as listed here :https://github.com/pulp-platform/pulp-riscv-gnu-toolchain.

I installation for the linux cross compiler is failing.
On running this command on the terminal: 

Code:
./configure --prefix=/opt/riscv --with-arch=rv32g --with-abi=ilp32d
make linux


I get the error message saying:
 /include/atomic.h:826:3: error: #error ATOMIC_EXCHANGE_USES_CAS has to be defined.

I have attached a screenshot showing the error with this post. 

Is there any fix for this? or Am I doing something wrong?

I am running this on Ubuntu 18.04 and I have set the gcc version to 5. Also, the Newlib compilation is performed successfully.

Print this item

  Estimating Energy and Power Consumption in PULP
Posted by: Adi - 01-24-2019, 08:29 AM - Forum: PULP General questions - Replies (1)

Hi,

If I want to estimate the energy and power consumption of a specific software which is run on PULP (let's say PULPino, PULPissimo or bigPULP) with an HWPE that I added, what is the proper way of doing it?
In addition, is there a way of estimating the area?

Thanks!
Adi

Print this item

  RISCY modifications possibilties
Posted by: Athena - 01-23-2019, 11:00 AM - Forum: PULP General questions - Replies (4)

Riscy and zero riscy cores based on the RISC V ISA are available as a part of different PULP systems. The specific custom extensions in the RISC V ISA are supported by the compiler. 

I was wondering If I can make changes to the RISCY core for eg adding a new h/w block like the h/w loop controller.
First of all with the given SDK is that even possible?
And is there a possibility of getting software support for such modifications. 

Thanks!

Print this item

  Accelerator wait function in BigPULP
Posted by: Adi - 01-15-2019, 02:55 PM - Forum: PULP General questions - Replies (2)

Hi,

I'm developing an HWPE which is supposed to run with BigPULP.
I want to wait for my HWPE to finish executing from my C code. In pulpissimo, I used the following code:

Code:
soc_eu_fcEventMask_setEvent(ARCHI_SOC_EVENT_FCHWPE0);
__rt_periph_wait_event(ARCHI_SOC_EVENT_FCHWPE0, 1);

But with bigpulp, which I run on HERO, I have to use this API. I tried this code:
Code:
eu_evt_maskSet(ARCHI_CL_EVT_ACC0);
eu_evt_maskWaitAndClr(ARCHI_CL_EVT_ACC0);

I also tried other combinations of functions from this API, but none of the wait functions returns (even though my accelerator finished working).
Which functions do I need to use and how?

Thanks,
Adi

Print this item

  Where is the "get started" documentation?
Posted by: byllgrim - 01-14-2019, 10:24 AM - Forum: PULP General questions - Replies (7)

Greetings.

I don't have time to be eloquent, sorry.

Is there some documentation, readme or tutorial on how to use the pulp designs?
Maybe it is common knowledge in the field of digital design (like ./configure make is a common standard in software), but I am a meager noob and student and I spent lots of hours without getting anything to work.

I managed to use modelsim to compile all RI5CY sources necessary to run a simulation of tb_riscv_core, but there was no clock signal and I don't know how to load programs etc.
Maybe I was hasty but I couldn't find proper help in the repo.

Thanks.
Regards Robin.

Print this item

  Sharing data between PULP and HWPE on HERO
Posted by: Adi - 01-08-2019, 06:06 AM - Forum: PULP General questions - Replies (12)

Hi,

My goal is to run an application on PULP which passes data to my PULP accelerator (HWPE) and vice versa (I use the ARM standalone application just as a way of running my PULP application, if this is at all necessary, is it? So I don't want to share data between the ARM and PULP, but between PULP and my HWPE)
When I simulated my accelerator on PULPissimo, my PULP application stored data in the TCDM simply by accessing a known offset (there was no virtualization), and the accelerator could access the same data with the appropriate address. I want to have the same functionality with HERO, so how do I do it? If I use addresses like in PULPissimo, what are the proper addresses? (I was advised to use 0x1b201000, but it didn't work for me) If it's more complicated than just accessing some offset, how do I do it otherwise and what Makefile I use which will work with both the HWPE API and the data sharing API?

In addition, I have another question regarding compiling a PULP application (not accelerator related). I want to use the riscv-blas library in my PULP application. This library includes Fortran code. The riscv-toolchain in the HERO environment doesn't have gfortran, so I tried to build another riscv toolchain with gfortran in order to compile the library. However, when I try to link libgfortran.a (generated with the second toolchain) to the PULP application using the HERO scripts, I get a lot of link errors about std C functions that are missing. So I was wondering, what is the proper way of compiling Fortran in a PULP application? Alternatively, if you're familiar with another solution of using BLAS on PULP, I'd appreciate if you could refer me to it.

Thanks,
Adi

Print this item

  ri5cy debugger access to memory and breakpoint facility
Posted by: lightning_fingers - 12-27-2018, 09:30 AM - Forum: PULP General questions - No Replies

Hello again!

The documentation for the ri5cy core, although getting better, is still a little "light" on details for the debugger hardware.

Is there any facility available for accessing memory whilst in debugging mode?
if not, how is it proposed that memory should be accessed when debugging?

what would be the suggested mechanism for implementing a breakpoint mechanism such the executing programme can be run up to a point then the debugger activated?
(I already have a simulation where I can single step the core at a specified simulation clock count, in reality this needs to be at a specified PC).

Thanks in advance

Print this item