Welcome, Guest |
You have to register before you can post on our site.
|
Latest Threads |
PULPino or PULPismo ? for...
Forum: PULP General questions
Last Post: sit-vlsi
Yesterday, 11:46 AM
» Replies: 3
» Views: 58
|
Queries in FPU for cv32e4...
Forum: PULP General questions
Last Post: meggiman
02-25-2021, 08:05 PM
» Replies: 1
» Views: 55
|
Getting input from consol...
Forum: PULP General questions
Last Post: nayan
02-25-2021, 12:35 PM
» Replies: 4
» Views: 222
|
Interrupt Service Routine...
Forum: PULP General questions
Last Post: RiscV
02-24-2021, 09:16 AM
» Replies: 2
» Views: 153
|
Question about bitstream ...
Forum: PULP General questions
Last Post: zorrolee777
02-23-2021, 08:22 PM
» Replies: 4
» Views: 449
|
using axi from rtl and C ...
Forum: PULP General questions
Last Post: meggiman
02-23-2021, 02:20 PM
» Replies: 5
» Views: 3,347
|
fullduplex communication ...
Forum: PULP General questions
Last Post: chikku
02-23-2021, 07:27 AM
» Replies: 0
» Views: 57
|
pulp-rt-example Makefile ...
Forum: PULP General questions
Last Post: nikolas
02-18-2021, 03:39 PM
» Replies: 1
» Views: 390
|
how to simulate CV32E40P ...
Forum: PULP General questions
Last Post: gsaitejareddy
02-08-2021, 03:58 PM
» Replies: 2
» Views: 399
|
Compiling for RISCY witho...
Forum: PULP General questions
Last Post: LarsKeuninckx
01-28-2021, 09:28 AM
» Replies: 2
» Views: 473
|
|
|
Help to run Hello Example |
Posted by: igor.lima - 12-01-2020, 08:05 PM - Forum: PULP General questions
- Replies (4)
|
 |
Hi!
I'm new in community, i'd like some help!
I'm trying to run the Hello example from "https://github.com/pulp-platform/pulp-rt-examples" in my Nexys Video FPGA using the bitstream of Pulpissimo.
Until now i'm just following the instructions from README.md file from "https://github.com/pulp-platform/pulpissimo".
I had download and install the Toolchain from pulp-riscv-gnu-toolchain as "Newlib", could someone confirm that it is not necessary install the "Linux" version of this toolchain?
Then i installed the Standard Pulp SDK from "https://github.com/pulp-platform/pulp-sdk/#standard-sdk-build"
I had some issues following the steps, most of them are related with missing steps, like configuring bashrc or some ambient variable, but i was able to solve all of them i believe. I miss some kind of step-by-step, from rtl to running example on FPGA, is it possible create something like that? I think it could be done as a new Thread in forum for the communty, it could help a lot.
I was able to generate the bitstream of Pulpissimo and configure it in Nexys Video FPGA using the JTAG-USB connection. When i run the specific OpenOCD from Pulp-SDK, the OpenOCD is able to identify the Pulpissimo processor in FPGA.
Then i compiled the Hello Example after adding the two weakly defined variables as suggested to configure core and peripherics frequencies. It was compiled with success, the ELF file was properly generate in the build directory.
My problem happen when i had try to use GDB with ELF file to load it to L2 memory of Pulpissimo, the connection between the GDB and OpenOCD looks fine, when i use the Load command it copy the elf file to memory it looks to work fine too, but when i use the Continue command it stops and never end the execution, but it print some kind of assembly commands like;
# j 1c0080ec <__rt_illegal_instr>
So i did the check with gcc in the ELF file to check the Assembly, as suspected it was printing the assembly that has some kind of error i believe, the first piece of assembly code is like that;
Code: test: file format elf32-littleriscv
Disassembly of section .vectors:
1c008000 <__irq_vector_base>:
1c008000: 0ec0006f j 1c0080ec <__rt_illegal_instr>
1c008004: 0900006f j 1c008094 <__rt_no_irq_handler>
1c008008: 08c0006f j 1c008094 <__rt_no_irq_handler>
1c00800c: 0880006f j 1c008094 <__rt_no_irq_handler>
1c008010: 0840006f j 1c008094 <__rt_no_irq_handler>
1c008014: 0800006f j 1c008094 <__rt_no_irq_handler>
1c008018: 07c0006f j 1c008094 <__rt_no_irq_handler>
1c00801c: 0780006f j 1c008094 <__rt_no_irq_handler>
1c008020: 0740006f j 1c008094 <__rt_no_irq_handler>
1c008024: 0700006f j 1c008094 <__rt_no_irq_handler>
1c008028: 06c0006f j 1c008094 <__rt_no_irq_handler>
1c00802c: 0680006f j 1c008094 <__rt_no_irq_handler>
1c008030: 0640006f j 1c008094 <__rt_no_irq_handler>
1c008034: 0600006f j 1c008094 <__rt_no_irq_handler>
1c008038: 05c0006f j 1c008094 <__rt_no_irq_handler>
1c00803c: 0580006f j 1c008094 <__rt_no_irq_handler>
1c008040: 0540006f j 1c008094 <__rt_no_irq_handler>
1c008044: 0500006f j 1c008094 <__rt_no_irq_handler>
1c008048: 04c0006f j 1c008094 <__rt_no_irq_handler>
1c00804c: 0480006f j 1c008094 <__rt_no_irq_handler>
1c008050: 0440006f j 1c008094 <__rt_no_irq_handler>
1c008054: 0400006f j 1c008094 <__rt_no_irq_handler>
1c008058: 03c0006f j 1c008094 <__rt_no_irq_handler>
1c00805c: 0380006f j 1c008094 <__rt_no_irq_handler>
1c008060: 0340006f j 1c008094 <__rt_no_irq_handler>
1c008064: 0300006f j 1c008094 <__rt_no_irq_handler>
1c008068: 02c0006f j 1c008094 <__rt_no_irq_handler>
1c00806c: 0280006f j 1c008094 <__rt_no_irq_handler>
1c008070: 0240006f j 1c008094 <__rt_no_irq_handler>
1c008074: 0200006f j 1c008094 <__rt_no_irq_handler>
1c008078: 01c0006f j 1c008094 <__rt_no_irq_handler>
1c00807c: 0180006f j 1c008094 <__rt_no_irq_handler>
1c008080 <_start>:
1c008080: 0200006f j 1c0080a0 <_entry>
1c008084: 0680006f j 1c0080ec <__rt_illegal_instr>
...
1c008090 <__rt_debug_struct_ptr>:
1c008090: 0cf4 addi a3,sp,604
1c008092: 1c00 addi s0,sp,560
1c008094 <__rt_no_irq_handler>:
1c008094: 0000006f j 1c008094 <__rt_no_irq_handler>
1c008098 <__rt_semihosting_call>:
1c008098: 00100073 ebreak
1c00809c: 00008067 ret
Disassembly of section .text:
1c0080a0 <_entry>:
1c0080a0: 7a101073 csrw pcmr,zero
1c0080a4: ffff9297 auipc t0,0xffff9
1c0080a8: d2c28293 addi t0,t0,-724 # 1c000dd0 <_bss_start>
1c0080ac: ffff9317 auipc t1,0xffff9
1c0080b0: e0030313 addi t1,t1,-512 # 1c000eac <__l2_priv0_end>
1c0080b4: 0002a023 sw zero,0(t0)
1c0080b8: 0291 addi t0,t0,4
1c0080ba: fe62ede3 bltu t0,t1,1c0080b4 <_entry+0x14>
1c0080be: ffff9117 auipc sp,0xffff9
1c0080c2: c0210113 addi sp,sp,-1022 # 1c000cc0 <stack>
1c0080c6: 292000ef jal ra,1c008358 <__rt_init>
1c0080ca: 00000513 li a0,0
1c0080ce: 00000593 li a1,0
1c0080d2: 00000397 auipc t2,0x0
1c0080d6: 26438393 addi t2,t2,612 # 1c008336 <main>
1c0080da: 000380e7 jalr t2
1c0080de: 842a mv s0,a0
1c0080e0: 350000ef jal ra,1c008430 <__rt_deinit>
1c0080e4: 8522 mv a0,s0
1c0080e6: 330010ef jal ra,1c009416 <exit>
1c0080ea <_fini>:
1c0080ea: 8082 ret
1c0080ec <__rt_illegal_instr>:
1c0080ec: fe112e23 sw ra,-4(sp)
1c0080f0: fea12c23 sw a0,-8(sp)
1c0080f4: 00000517 auipc a0,0x0
1c0080f8: 3ba50513 addi a0,a0,954 # 1c0084ae <__rt_handle_illegal_instr>
1c0080fc: 010000ef jal ra,1c00810c <__rt_call_c_function>
1c008100: ffc12083 lw ra,-4(sp)
1c008104: ff812503 lw a0,-8(sp)
1c008108: 30200073 mret
1c00810c <__rt_call_c_function>:
1c00810c: 7119 addi sp,sp,-128
1c00810e: c006 sw ra,0(sp)
1c008110: c20e sw gp,4(sp)
1c008112: c412 sw tp,8(sp)
1c008114: c616 sw t0,12(sp)
What could i have done to generate some kind of illegal instruction during the compiling process? is it not wrong after all?
When i use the gdb command "disas" it print the C code properly...
If you need any more information, just ask
Any help will be very helpful
Best Regards, Igor Ruschi
|
|
|
Is there an IDE? |
Posted by: nikolas - 11-18-2020, 04:04 PM - Forum: PULP General questions
- Replies (2)
|
 |
Hi there
I was wondering if there is any opportunity to work with the Eclipse IDE to program and debug the PULPissimo that is running on a NEXYS 4 board?
Or is there any other IDE, that would be able to do that?
Would really like to find an easier way to work with PULPissimo than compiling, downloading and debugging from the command line.
Thank you very much for all kind of ideas.
|
|
|
Building an RTL simulation platform Error |
Posted by: RiscV - 11-03-2020, 10:24 AM - Forum: PULP General questions
- Replies (1)
|
 |
Hi,
I followed the readme file of pulpissimo for building an RTL simulation platform. After the following steps
Code: source setup/vsim.sh
make build
I am getting error like this
Code: make -C ../rtl/tb/remote_bitbang all
make[2]: Entering directory '/opt/pulpissimo/rtl/tb/remote_bitbang'
cc -MT remote_bitbang.o -MMD -MP -MF ./.d/remote_bitbang.Td -std=gnu11 -fno-strict-aliasing -Wall -Wextra -Wno-missing-field-initializers -Wno-unused-function -Wno-missing-braces -O2 -g -march=native -DENABLE_LOGGING -DNDEBUG -fPIC -I./ \
-c remote_bitbang.c -o remote_bitbang.o
ld -shared -E --exclude-libs ALL -o librbs.so \
remote_bitbang.o sim_jtag.o
make[2]: Leaving directory '/opt/pulpissimo/rtl/tb/remote_bitbang'
/opt/pulpissimo/sim//tcl_files/rtl_vopt.tcl
/usr/bin/env: ‘tclsh’: No such file or directory
Makefile:37: recipe for target 'opt' failed
make[1]: *** [opt] Error 127
make[1]: Leaving directory '/opt/pulpissimo/sim'
Makefile:47: recipe for target 'build' failed
make: *** [build] Error 2
I am using ModelSim - Intel FPGA Edition 20.3 (includes Starter Edition). Please help me ..
|
|
|
Pulpissimo- errors during FPGA synthesis. |
Posted by: plumerai - 09-25-2020, 04:23 PM - Forum: PULP General questions
- Replies (2)
|
 |
I am trying to synthesize Pulpissimo with Vivado 2019.2 for nexys A7-100. I get the following errors:
Code: [Place 30-69] Instance i_pulpissimo/pad_frame_i/padinst_bootsel/iobuf_i/IBUF (IBUF driven by I/O terminal i_pulpissimo/pad_frame_i/padinst_bootsel/iobuf_i/IO) is unplaced after IO placer
[Place 30-68] Instance i_pulpissimo/pad_frame_i/padinst_bootsel/iobuf_i/IBUF (IBUF) is not placed
[Place 30-99] Placer failed with error: 'IO Clock Placer failed'
Please review all ERROR, CRITICAL WARNING, and WARNING messages during placement to understand the cause for failure.
[Common 17-69] Command failed: Placer could not place all instances
I didn't modify a bit after cloning the repo.
|
|
|
Adding custom instructions into RI5CY core |
Posted by: plumerai - 09-25-2020, 09:04 AM - Forum: PULP General questions
- Replies (4)
|
 |
We are currently evaluating the RI5CY core for our project and the possibility of adding custom instructions is important for us. Some other cores (Sifive E31, Vexriscv) have simple and documented ways to do this, but I couldn't find the information about RI5CY. HWPEs are great but we may need a true custom instruction support for our needs.
|
|
|
FPGA: Printing UART on minicom possible? |
Posted by: LPLA - 09-23-2020, 03:42 PM - Forum: PULP General questions
- No Replies
|
 |
Hello,
while looking at the pulp-rt-examples I found the uart examples and I was wondering if it's possible to print the contents of the buffer to minicom using the rt_uart_write function.
I have already tested the hello example on ZedBoard and the printf works just fine with minicom.
Now I was wondering if it's possible to write the same Hello! to minicom using the rt_uart_write function.
If I run the send example I don't get any output on minicom or in RTL simulation.
Same if I put a string in the buffer instead of the loop that is used in the example.
Shouldn't it be possible to get something on minicom with this method somehow?
I also played around with the RTS and CTS signals as i didn't want to have them float, even tho it worked with the normal hello example, but it didn't help with the above method.
Does anyone have any experience with this?
Edit: I managed to make it work. It was an issue in the code of the app I tried to run.
Thank you,
LPLA
|
|
|
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.
|
|
|
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!
|
|
|
|