Welcome, Guest |
You have to register before you can post on our site.
|
Latest Threads |
OpenOCD Error with Nexys ...
Forum: PULP General questions
Last Post: NEO
04-25-2024, 06:26 AM
» Replies: 1
» Views: 1,138
|
Booting Pulpissimo from S...
Forum: PULP General questions
Last Post: kgf
04-25-2024, 06:19 AM
» Replies: 1
» Views: 29
|
how to manipulating of GP...
Forum: PULP General questions
Last Post: zealshah29
04-19-2024, 12:15 PM
» Replies: 6
» Views: 17,749
|
priviliged interrupts
Forum: PULP General questions
Last Post: tswaehn
04-16-2024, 01:43 PM
» Replies: 0
» Views: 108
|
Compiling and running CNN...
Forum: PULP General questions
Last Post: NEO
04-11-2024, 12:29 PM
» Replies: 2
» Views: 288
|
How do I get the files ne...
Forum: PULP General questions
Last Post: AlessioBurrello
04-05-2024, 10:22 AM
» Replies: 1
» Views: 404
|
Pulpissimo bitstream gene...
Forum: PULP General questions
Last Post: zealshah29
03-28-2024, 06:41 AM
» Replies: 13
» Views: 40,576
|
Help to run Hello Example
Forum: PULP General questions
Last Post: zealshah29
03-28-2024, 06:31 AM
» Replies: 5
» Views: 10,854
|
Compiling and running app...
Forum: PULP General questions
Last Post: zealshah29
03-28-2024, 06:13 AM
» Replies: 5
» Views: 18,817
|
Understanding the TCDM in...
Forum: PULP General questions
Last Post: zealshah29
02-13-2024, 10:34 AM
» Replies: 7
» Views: 15,140
|
|
|
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!
|
|
|
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
|
|
|
Where is the "get started" documentation? |
Posted by: byllgrim - 01-14-2019, 10:24 AM - Forum: PULP General questions
- Replies (9)
|
|
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.
|
|
|
Sharing data between PULP and HWPE on HERO |
Posted by: Adi - 01-08-2019, 06:06 AM - Forum: PULP General questions
- Replies (13)
|
|
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
|
|
|
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
|
|
|
update to ri5cy core interrupt system and toolchain |
Posted by: lightning_fingers - 12-27-2018, 09:25 AM - Forum: PULP General questions
- Replies (4)
|
|
Hello!
I am investigating using the ri5cy core for a commercial application.
Quite some time ago I looked into the ri5cy core via the Embecosm githubu fork:
https://github.com/embecosm/ri5cy
This seems to (now) be a quite old version of the core (32 interrupt inputs, much different csr implementation).
So, I've updated my core payload with the latest ri5cy rtl build.
I now have problems with my prototype interrupt code.
In C I have:
in "main()" {
set_csr (0x300, 0x00000009); //enable interrupts?
write_csr(0x305, my_isr); // isr address?
// big long delay
for (int i=0;i<10000;i++) asm("NOP");
}
void __attribute__ ((interrupt())) my_isr (){
*simresult = (unsigned short int) 0xF111; // flag result
}
which gives me:
00000300 <my_isr>:
300: ff010113 addi sp,sp,-16
304: 00f12423 sw a5,8(sp)
308: 00e12623 sw a4,12(sp)
30c: 40002703 lw a4,1024(zero) # 400 <simresult>
310: 0000f7b7 lui a5,0xf
314: 11178793 addi a5,a5,273 # f111 <_end+0xece5>
318: 00f72023 sw a5,0(a4)
31c: 00c12703 lw a4,12(sp)
320: 00812783 lw a5,8(sp)
324: 01010113 addi sp,sp,16
328: 10000073 eret
The compiler is inserting the correct isr handling code......
But when simulated with the latest ri5cy core I get:
# - DGB - write 0 into CTRL
# 2465870000 ps: Illegal instruction (core 0) at PC 0x00000328:
# 2469762000 ps: Illegal instruction (core 0) at PC 0x00000328:
I read in the riscv documentation that eret should now probably be an mret.
(At present I am using the embecosm modified toolchain (gcc).)
where can I download the "official" build gcc build tools for the latest ri5cy core (including all of the ri5cy additions like the hardware loop functionality)?
Many thanks in advance
|
|
|
hero-sdk for ZynqMP |
Posted by: dave.mcewan - 12-21-2018, 03:57 PM - Forum: PULP General questions
- Replies (7)
|
|
Hello again,
I'm trying to build hero-sdk, specifically hero-gcc-toolchain, for use on a ZCU102 and I'm running into some errors.
The first error is when compiling aeabi_lcsts.c:
Code: hero-sdk/hero-gcc-toolchain/install/arm-linux-gnueabihf/libc/usr/include/asm/sigcontext.h:53:2: error: unknown type name '__uint128_t'
With some googling this *may* be related to CFLAGS with a -std=c11 instead of -std=gnu11. However the output from make says I'm already using gnu11:
Code: arm-linux-gnueabihf-gcc ../sysdeps/arm/aeabi_lcsts.c -c -std=gnu11 -fgnu89-inline [... snip ...]
To retarget the host CPU architecture I've made the following changes in hero-sdk:
Code: diff --git a/scripts/hero-z-7045-env.sh b/scripts/hero-z-7045-env.sh
index 0c7af43..31bba7d 100755
--- a/scripts/hero-z-7045-env.sh
+++ b/scripts/hero-z-7045-env.sh
@@ -36,11 +36,11 @@ export HERO_TARGET_PATH_DRIVER="${HERO_TARGET_PATH}/drivers"
export HERO_TARGET_PATH_LIB="${HERO_TARGET_PATH}/libs"
# Host-side platform config
-export PLATFORM="2"
-export BOARD="zc706"
+export PLATFORM="5"
+export BOARD="zcu102"
# Host-side user-space config
-export ARCH="arm"
+export ARCH="arm64"
export CROSS_COMPILE="arm-linux-gnueabihf-"
export HERO_LIBPULP_DIR=`realpath hero-support/libpulp`
And in hero-gcc-toolchain:
Code: diff --git a/scripts/hero_arm_toolchain_env.sh b/scripts/hero_arm_toolchain_env.sh
index 6cedabe..67a3760 100755
--- a/scripts/hero_arm_toolchain_env.sh
+++ b/scripts/hero_arm_toolchain_env.sh
@@ -19,7 +19,7 @@
HERO_HOST_TARGET=arm-linux-gnueabihf
HERO_BUILD_TARGET=x86_64-linux-gnu
-HERO_HOST_LINUX_ARCH=arm
+HERO_HOST_LINUX_ARCH=arm64
HERO_HOST_GLIBC=glibc-2.26
HERO_HOST_FPU_CONFIG="--with-fpu=neon-fp16 --with-float=hard"
Build platform is Ubuntu 16.04.
If I leave scripts/hero-z-7045-env.sh so that it's configured for ZC706 with ARM7 host cores then all parts of the hero-sdk build process complete successfully.
Since there appears to be some code related to ZynqMP in the makefiles, is there somebody here who has successfully built for this target?
|
|
|
Busybox Version |
Posted by: Muhammad Usman - 12-20-2018, 07:21 PM - Forum: PULP General questions
- Replies (1)
|
|
Hi,
Can you help me resolve this Busybox version issue?
Code: cd buildroot && make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi- -j4
make[1]: Entering directory '/home/usman/risc-v/pulpino_2015-4/pulpino/fpga/sw/buildroot'
>>> toolchain-external undefined Extracting
>>> toolchain-external undefined Patching
>>> toolchain-external undefined Configuring
Incorrect selection of kernel headers: expected 3.16.x, got 3.19.x
package/pkg-generic.mk:146: recipe for target '/home/usman/risc-v/pulpino_2015-4/pulpino/fpga/sw/buildroot/output/build/toolchain-external-undefined/.stamp_configured' failed
|
|
|
|