| Welcome, Guest |
You have to register before you can post on our site.
|
| Latest Threads |
Default qemu login?
Forum: PULP General questions
Last Post: ajgaspar
06-24-2026, 10:23 PM
» Replies: 0
» Views: 45
|
Ask question
Forum: PULP General questions
Last Post: Francis Ortega
06-23-2026, 06:46 AM
» Replies: 0
» Views: 70
|
I2C cannot write to TX_SA...
Forum: PULP General questions
Last Post: anhnt
06-22-2026, 10:40 AM
» Replies: 3
» Views: 13,339
|
Unable to compile and run...
Forum: PULP General questions
Last Post: Garrett Gay
06-12-2026, 04:51 AM
» Replies: 5
» Views: 9,244
|
Multi Core PULP first tim...
Forum: PULP General questions
Last Post: calimi
06-09-2026, 07:17 AM
» Replies: 2
» Views: 7,338
|
missing package in pulp-s...
Forum: PULP General questions
Last Post: marktuan
05-07-2026, 01:02 PM
» Replies: 4
» Views: 8,756
|
HERO: Compiling OpenMP ex...
Forum: PULP General questions
Last Post: Ahenett
03-25-2026, 08:31 AM
» Replies: 2
» Views: 8,231
|
Help with llvm/clang comp...
Forum: PULP General questions
Last Post: ernalcohol
02-26-2026, 07:22 AM
» Replies: 6
» Views: 10,958
|
XpulpNN march
Forum: PULP General questions
Last Post: Finko
02-23-2026, 03:12 AM
» Replies: 5
» Views: 8,910
|
Cheshire with two cores
Forum: PULP General questions
Last Post: ric.ted
11-28-2025, 11:07 AM
» Replies: 7
» Views: 14,219
|
|
|
| Memset in the disassembly section |
|
Posted by: RiscV - 09-11-2020, 12:09 PM - Forum: PULP General questions
- Replies (5)
|
 |
Hi,
I am trying to compile a simple code which has global arrays. I have initialized all the global arrays to make sure the compiler does not generate the code to initialize them to 0. However, I am still getting these "memset" calls in the _start section of the assembly.
Code: Disassembly of section .text:
1c000000 <_start>:
1c000000: 00001197 auipc gp,0x1
1c000004: 18018193 addi gp,gp,384 # 1c001180 <__global_pointer$>
1c000008: 00001517 auipc a0,0x1
1c00000c: 95850513 addi a0,a0,-1704 # 1c000960 <__FRAME_END__>
1c000010: 00001617 auipc a2,0x1
1c000014: 97060613 addi a2,a2,-1680 # 1c000980 <completed.1>
1c000018: 40a60633 sub a2,a2,a0
1c00001c: 00000593 li a1,0
1c000020: 1a8000ef jal ra,1c0001c8 <memset>
1c000024: 00000517 auipc a0,0x0
The program is not return to start section after executing till 1C0001f8
Code: 1c0001c8 <memset>:
1c0001c8: 00f00313 li t1,15
1c0001cc: 00050713 mv a4,a0
1c0001d0: 02c37e63 bgeu t1,a2,1c00020c <memset+0x44>
1c0001d4: 00f77793 andi a5,a4,15
1c0001d8: 0a079063 bnez a5,1c000278 <memset+0xb0>
1c0001dc: 08059263 bnez a1,1c000260 <memset+0x98>
1c0001e0: ff067693 andi a3,a2,-16
1c0001e4: 00f67613 andi a2,a2,15
1c0001e8: 00e686b3 add a3,a3,a4
1c0001ec: 00b72023 sw a1,0(a4)
1c0001f0: 00b72223 sw a1,4(a4)
1c0001f4: 00b72423 sw a1,8(a4)
1c0001f8: 00b72623 sw a1,12(a4)
1c0001fc: 01070713 addi a4,a4,16
1c000200: fed766e3 bltu a4,a3,1c0001ec <memset+0x24>
1c000204: 00061463 bnez a2,1c00020c <memset+0x44>
What should I do to load complete hex file to my verilator model? how can I get rid of this memset? I tried with
PHP Code: <?php
-fno-zero-initialized-in-bss
in my gcc, but not solved my issue. Currently using riscv gnu toolchain 10.1.0.
|
|
|
| Error while building SDK |
|
Posted by: Victor - 09-11-2020, 01:27 AM - Forum: PULP General questions
- Replies (4)
|
 |
Hello! I checked existing threads but did not find a solution for my problem.
I've already installed simple runtime and executed expample "hello" successfully.
While I was installing SDK, I had some problems. I just follow the steps in
GitHub and run the "make build-pulp-sdk" and some errors just came out.
Environment:
CentOS-7
gcc 4.8.3
python 3.6.8
Following is some of the configuration in my ".bashrc".
export PATH=$PATH:$HOME/mylib/v1.0.16-pulp-riscv-gcc-centos-7/:/tools/linux/mentor/modelsim/10.6a/modeltech/
I wrote this "source_pulp.sh" and source it once before I start building SDK.
PULP_HOME=$HOME/pulpissimo
export PULP_RISCV_GCC_TOOLCHAIN=$HOME/mylib/v1.0.16-pulp-riscv-gcc-centos-7
export VSIM_PATH=$PULP_HOME/sim
export CPLUS_INCLUDE_PATH=/usr/local/include/ImageMagick-6
source $PULP_HOME/pulp-runtime/configs/pulpissimo.sh
source $PULP_HOME/setup/vsim.sh
source $PULP_HOME/pulp-sdk/configs/pulpissimo.sh
source $PULP_HOME/pulp-sdk/configs/platform-rtl.sh
1. I've already installed configparser at /usr/local/lib/python3.6/site-packages.
But "No module named configparser" shows up from time to time. Should I install
configparser with another method or just run several times to ignore the error?
2. I've installed ImageMagick at /usr/local/include. When I use ImageMagick-7 as
the library, this error occurs.
sdk:dpi-models:build: make build install
make[2]: Entering directory `/users/student/mr109/cyyang20/pulpissimo/pulp-sdk/platform/dpi_models'
make -C models build
make[3]: Entering directory `/users/student/mr109/cyyang20/pulpissimo/pulp-sdk/platform/dpi_models/models'
g++ camera/camera.cpp -o /users/student/mr109/cyyang20/pulpissimo/pulp-sdk/build/sdk/dpi-models/models/camera.so -I/usr/include/GraphicsMagick -D__MAGICK__ -MMD -MP -O2 -g -fpic -std=c++11 -I/users/student/mr109/cyyang20/pulpissimo/pulp-sdk/pkg/sdk/dev/install/ws/include -Werror -Wfatal-errors -DMAGICKCORE_QUANTUM_DEPTH=16 -DMAGICKCORE_HDRI_ENABLE=0 -lGraphicsMagick++ -lGraphicsMagick -O2 -g -shared -L/users/student/mr109/cyyang20/pulpissimo/pulp-sdk/pkg/sdk/dev/install/ws/lib -Werror -Wfatal-errors
camera/camera.cpp:82:3: error: 'PixelPacket' does not name a type
PixelPacket *image_buffer;
^
compilation terminated due to -Wfatal-errors.
make[3]: *** [/users/student/mr109/cyyang20/pulpissimo/pulp-sdk/build/sdk/dpi-models/models/camera.so] Error 1
make[3]: Leaving directory `/users/student/mr109/cyyang20/pulpissimo/pulp-sdk/platform/dpi_models/models'
make[2]: *** [build] Error 2
make[2]: Leaving directory `/users/student/mr109/cyyang20/pulpissimo/pulp-sdk/platform/dpi_models'
Reached EOF with exit status 2
FATAL ERROR: the command 'build' has failed
make[1]: *** [all] Error 255
make[1]: Leaving directory `/users/student/mr109/cyyang20/pulpissimo/pulp-sdk'
make: *** [pulp-sdk] Error 2
But after I choose ImageMagick-6 as the library, this error occurs.
sdk:dpi-models:build: make build install
make[2]: Entering directory `/users/student/mr109/cyyang20/pulpissimo/pulp-sdk/platform/dpi_models'
make -C models build
make[3]: Entering directory `/users/student/mr109/cyyang20/pulpissimo/pulp-sdk/platform/dpi_models/models'
g++ camera/camera.cpp -o /users/student/mr109/cyyang20/pulpissimo/pulp-sdk/build/sdk/dpi-models/models/camera.so -I/usr/include/GraphicsMagick -D__MAGICK__ -MMD -MP -O2 -g -fpic -std=c++11 -I/users/student/mr109/cyyang20/pulpissimo/pulp-sdk/pkg/sdk/dev/install/ws/include -Werror -Wfatal-errors -DMAGICKCORE_QUANTUM_DEPTH=16 -DMAGICKCORE_HDRI_ENABLE=0 -lGraphicsMagick++ -lGraphicsMagick -O2 -g -shared -L/users/student/mr109/cyyang20/pulpissimo/pulp-sdk/pkg/sdk/dev/install/ws/lib -Werror -Wfatal-errors
In file included from /usr/include/GraphicsMagick/magick/render.h:14:0,
from /usr/include/GraphicsMagick/magick/draw.h:31,
from /usr/local/include/ImageMagick-6/magick/annotate.h:21,
from /usr/local/include/ImageMagick-6/magick/MagickCore.h:80,
from /usr/local/include/ImageMagick-6/Magick++/Include.h:45,
from /usr/local/include/ImageMagick-6/Magick++.h:10,
from camera/camera.cpp:24:
/usr/include/GraphicsMagick/magick/type.h:87:21: error: 'MagickPassFail' does not name a type
extern MagickExport MagickPassFail
^
compilation terminated due to -Wfatal-errors.
make[3]: *** [/users/student/mr109/cyyang20/pulpissimo/pulp-sdk/build/sdk/dpi-models/models/camera.so] Error 1
make[3]: Leaving directory `/users/student/mr109/cyyang20/pulpissimo/pulp-sdk/platform/dpi_models/models'
make[2]: *** [build] Error 2
make[2]: Leaving directory `/users/student/mr109/cyyang20/pulpissimo/pulp-sdk/platform/dpi_models'
Reached EOF with exit status 2
FATAL ERROR: the command 'build' has failed
make[1]: *** [all] Error 255
make[1]: Leaving directory `/users/student/mr109/cyyang20/pulpissimo/pulp-sdk'
make: *** [pulp-sdk] Error 2
I would like to know whether I installed ImageMagick correctly. If there's
anything needed to help me deal with these problems, please let me know!
Thanks a lot!
|
|
|
| Access Stack Pointer in RiscV Pulp |
|
Posted by: RiscV - 08-22-2020, 10:32 AM - Forum: PULP General questions
- Replies (1)
|
 |
Hi ,
I am trying C to hex conversion for a simple (addition) program. My disassembly code is as follows:
Code: 00010000 <main>:
10000: fe010113 addi sp,sp,-32
10004: 00812e23 sw s0,28(sp)
10008: 02010413 addi s0,sp,32
1000c: 00a00793 li a5,15
10010: fef42623 sw a5,-20(s0)
10014: 00500793 li a5,5
10018: fef42423 sw a5,-24(s0)
1001c: fec42703 lw a4,-20(s0)
10020: fe842783 lw a5,-24(s0)
10024: 00f707b3 add a5,a4,a5
10028: fef42223 sw a5,-28(s0)
1002c: 00000793 li a5,0
10030: 00078513 mv a0,a5
10034: 01c12403 lw s0,28(sp)
10038: 02010113 addi sp,sp,32
1003c: 00008067 ret
I used elf2hex for getting hex file. Hex files are generated successfully. I am using Riscv Pulppissimo testbench, and using readmemh for reading the generated hex file. My issue is after generating the .vcd file (gtkwave) I am not getting the result of addition. As per the disassembly section the result will go to the stack pointer, But how can I access SP in .vcd file.
In my vcd file regfile_alu_wdata loading the input values ie;5 and F but the result getting is 000102CE. I am getting the same result for other input values too.......
|
|
|
| Error while updating IPs |
|
Posted by: LPLA - 08-19-2020, 12:34 PM - Forum: PULP General questions
- Replies (4)
|
 |
Hello,
yesterday I had an error while executing the ./update-ips command.
Code: Updating ip 'apb_fll_if'...
Traceback (most recent call last):
File "./update-ips", line 47, in <module>
ipdb.update_ips()
File "ipstools/ipstools/IPDatabase.py", line 525, in update_ips
ValueError: invalid literal for int() with base 10: b'
I don't know why I got this error because I didn't change anything on my system, in fact I didn't even use this particular computer at all in the last few weeks.
What I did was get a fresh PULPissimo installation.
So I cloned from the GitHub and updated the ips.
Everything worked fine and the error was gone.
Currently I am trying to generate the bitstream for the Zedboard.
So when I run make zedboard I get the following error:
Code: ERROR: [Vivado 12-172] File or Directory '/local/lpla/pulpissimo/fpga/pulpissimo-zedboard/ips/xilinx_clk_mngr/ip/xilinx_clk_mngr.xci' does not exist
I then tried to update the ips again.
But now I get the same error again:
Code: Updating ip 'apb_fll_if'...
Traceback (most recent call last):
File "./update-ips", line 47, in <module>
ipdb.update_ips()
File "ipstools/ipstools/IPDatabase.py", line 525, in update_ips
ValueError: invalid literal for int() with base 10: b''
I have been trying to generate the bitstream for the Zedboard for a few days now but I run from one error into another.
As mentioned just yesterday I freshly pulled PULPissimo and updated the ips without any problems.
I didn't do pull anything else or manipulate any of the files or scripts.
Still I get the error again. Also it says that my local repo is already up-to-date.
Does anyone have an idea why this keeps happening?
All I'm trying to do is create the bitstream for the Zedboard following all the steps mentioned in the GitHub.
Edit: I just did a fresh install of PULPissimo again and this time it worked. Still it's weird that I got that error twice for no obvious reason. Maybe someone has an idea what happened...
Thank you,
LPLA
|
|
|
| Simple RISC-V Assembly Instructions Verification |
|
Posted by: ufsahu - 08-19-2020, 07:48 AM - Forum: PULP General questions
- Replies (2)
|
 |
Hello,
I am new to RISC-V and PULPissimo. So far, using the following Makefile, I have been able to generate C based test cases for verifying general C commands:
PULP_APP = test
PULP_APP_FC_SRCS = test.c
PULP_APP_HOST_SRCS = test.c
PULP_CFLAGS = -O3 -g
include $(PULP_SDK_HOME)/install/rules/pulp_rt.mk
When I am trying to add basic asm code as inline assembly in the C test, it provides error on those specific commands.
I added the following code in the test.c file:
asm( "mov r0, r0\n\t"
"mov r0, r0\n\t"
"mov r0, r0\n\t"
"mov r0, r0" );
I received the following errors:
test.c: Assembler messages:
test.c:15: Error: unrecognized opcode mov r0,r0'
test.c:16: Error: unrecognized opcodemov r0,r0'
test.c:17: Error: unrecognized opcode mov r0,r0'
test.c:18: Error: unrecognized opcodemov r0,r0'
Is there a simple way of adding inline assembly in C test cases, and verifying for example load and store instructions, or more instruction types? The compiler is able to run test.c file using the above Makefile method and I was hoping to keep that constant and work it around the inline assembly in a simple way.
|
|
|
| Error while running helloworld in PULPino |
|
Posted by: Tresa Febina Francis - 08-12-2020, 05:06 PM - Forum: PULP General questions
- No Replies
|
 |
root@tresa-Inspiron-5567:~/pulpino/sw/build1# make helloworld
[ 0%] Built target bench
[ 0%] Building C object CMakeFiles/crt0.dir/ref/crt0.riscv.S.o
/root/pulpino/sw/ref/crt0.riscv.S:17:3: error: expected identifier or '(' before '.' token
.section .text
^
/root/pulpino/sw/ref/crt0.riscv.S:84:3: error: unknown type name 'addi'
addi x10, x0, 0
^
/root/pulpino/sw/ref/crt0.riscv.S:84:17: error: expected identifier or '(' before numeric constant
addi x10, x0, 0
^
/root/pulpino/sw/ref/crt0.riscv.S:89:3: error: unknown type name 'mv'
mv a0, s0
^
/root/pulpino/sw/ref/crt0.riscv.S:91:3: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'jal'
jal x1, exit
^
/root/pulpino/sw/ref/crt0.riscv.S:254:5: error: invalid preprocessing directive #These
# These don't have to do anything since we use init_array/fini_array.
^
/root/pulpino/sw/ref/crt0.riscv.S:254:14: warning: missing terminating ' character
# These don't have to do anything since we use init_array/fini_array.
^
/root/pulpino/sw/ref/crt0.riscv.S:265:3: error: expected identifier or '(' before '.' token
.org 0x00
^
CMakeFiles/crt0.dir/build.make:81: recipe for target 'CMakeFiles/crt0.dir/ref/crt0.riscv.S.o' failed
make[3]: *** [CMakeFiles/crt0.dir/ref/crt0.riscv.S.o] Error 1
CMakeFiles/Makefile2:3980: recipe for target 'CMakeFiles/crt0.dir/all' failed
make[2]: *** [CMakeFiles/crt0.dir/all] Error 2
CMakeFiles/Makefile2:5086: recipe for target 'apps/helloworld/CMakeFiles/helloworld.dir/rule' failed
make[1]: *** [apps/helloworld/CMakeFiles/helloworld.dir/rule] Error 2
Makefile:720: recipe for target 'helloworld' failed
make: *** [helloworld] Error 2
Got this error while running helloworld.
Kindly look into this error and help me out.
Thanks in advance!
|
|
|
| Which FPGA? |
|
Posted by: thalyson - 08-10-2020, 07:35 PM - Forum: PULP General questions
- Replies (1)
|
 |
Hello everyone
The Pulpissimo page on GitHub says:
"At the moment the following boards are supported:
Digilent Genesys2
Xilinx ZCU104
Xilinx ZCU102
Digilent Nexys Video
ZedBoard"
The question is: which one is better to start working with Pulpissimo? Is there any difference between them? Is there a "easier" board?
Thanks
|
|
|
| Cannot open linker script file riscv.ld |
|
Posted by: nayan - 08-05-2020, 11:04 AM - Forum: PULP General questions
- Replies (1)
|
 |
I downloaded pulp-riscv-gnu-toolchain and did installation(PULP). When i try to compile a program using riscv32-unknown-elf-gcc, I get the following error
/opt/riscv/lib/gcc/riscv32-unknown-elf/7.1.1/../../../../riscv32-unknown-elf/bin/ld: cannot open linker script file riscv.ld: No such file or directory
collect2: error: ld returned 1 exit status
|
|
|
| Modifications of the HERO platform |
|
Posted by: Olivier - 07-06-2020, 07:40 AM - Forum: PULP General questions
- Replies (2)
|
 |
Hello,
I'm very interested by the HERO platform on the ZC706 FPGA board. I tried to modify bigpulp by defining 2 clusters of 3 cores each. To do this, I changed the number of clusters and cores in the bigpulp/fe/rtl/includes/pulp_soc_defines.sv file and the hero_sdk/pulp_sdk/pulp_configs/configs/systems/hero-z-7045.json file.
To generate the bitstream, I followed the steps described in this link https://github.com/pulp-platform/bigpulp. And to generate the SDK, I followed the steps described in this link https://pulp-platform.org/hero/doc/software/.
However, I was not able to run the "hero-openmp-examples" programs. In the case of the mm-large program, matrix multiplication is correctly executed on ARM, but for the part to be executed on bigPulp it is frozen.
Did I modify the right files for the bigPULP part and the HERO-SDK part?
Otherwise do you have any idea what the problem is?
Thanks in advance.
|
|
|
|