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

Username
  

Password
  





Search Forums

(Advanced Search)

Forum Statistics
» Members: 555
» Latest member: ziweitianyuan
» Forum threads: 144
» Forum posts: 492

Full Statistics

Latest Threads
Memset in the disassembly...
Forum: PULP General questions
Last Post: RiscV
09-14-2020, 07:02 AM
» Replies: 5
» Views: 257
Error while building SDK
Forum: PULP General questions
Last Post: Victor
09-12-2020, 01:22 PM
» Replies: 4
» Views: 225
[Pulpissimo]where are the...
Forum: PULP General questions
Last Post: meggiman
08-29-2020, 02:04 PM
» Replies: 8
» Views: 3,821
Some questions about the ...
Forum: PULP General questions
Last Post: akurth
08-27-2020, 01:35 PM
» Replies: 3
» Views: 1,136
Offloading APIs available...
Forum: PULP General questions
Last Post: akurth
08-27-2020, 01:30 PM
» Replies: 1
» Views: 236
Compiling and running app...
Forum: PULP General questions
Last Post: LPLA
08-27-2020, 11:54 AM
» Replies: 4
» Views: 2,688
Access Stack Pointer in R...
Forum: PULP General questions
Last Post: RiscV
08-25-2020, 11:01 AM
» Replies: 1
» Views: 255
Simple RISC-V Assembly In...
Forum: PULP General questions
Last Post: ufsahu
08-21-2020, 05:46 AM
» Replies: 2
» Views: 332
Error while updating IPs
Forum: PULP General questions
Last Post: LPLA
08-20-2020, 11:43 AM
» Replies: 2
» Views: 320
Error while running hello...
Forum: PULP General questions
Last Post: Tresa Febina Francis
08-12-2020, 05:06 PM
» Replies: 0
» Views: 245

 
  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:
-fno-zero-initialized-in-bss 
in my gcc, but not solved my issue. Currently using riscv gnu toolchain 10.1.0.

Print this item

  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!

Print this item

  Offloading APIs available on the HERO platform.
Posted by: Olivier - 08-27-2020, 01:18 PM - Forum: PULP General questions - Replies (1)

Hi,

I would like to run small home-made algorithms of languages other than c on the HERO platform.
Is offloading to bigPULP only possible with OpenMP or are other APIs implemented?

Thanks.

Print this item

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

Print this item

  Error while updating IPs
Posted by: LPLA - 08-19-2020, 12:34 PM - Forum: PULP General questions - Replies (2)

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

Print this item

  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.

Print this item

  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!

Print this item

  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

Print this item

  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

Print this item

  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.

Print this item