Welcome, Guest |
You have to register before you can post on our site.
|
Latest Threads |
How to get more detailed ...
Forum: PULP General questions
Last Post: kgf
Today, 07:42 AM
» Replies: 6
» Views: 2,602
|
Which SDK to be used to c...
Forum: PULP General questions
Last Post: Archibald
Today, 02:12 AM
» Replies: 2
» Views: 3,143
|
Cheshire with two cores
Forum: PULP General questions
Last Post: tomkathy
06-18-2025, 09:17 AM
» Replies: 5
» Views: 1,976
|
【新手必讀】Relx電子菸煙彈選購指南與保養技巧
Forum: PULP General questions
Last Post: mmrnkbqfexgs
06-18-2025, 07:51 AM
» Replies: 0
» Views: 64
|
Understanding HWPE integr...
Forum: PULP General questions
Last Post: sillycorn
06-05-2025, 06:45 AM
» Replies: 0
» Views: 167
|
missing package in pulp-s...
Forum: PULP General questions
Last Post: Renryant
06-02-2025, 07:55 AM
» Replies: 1
» Views: 513
|
Role of gapy, list of per...
Forum: PULP General questions
Last Post: yoss
04-25-2025, 01:41 PM
» Replies: 7
» Views: 12,352
|
Pulp - make build
Forum: PULP General questions
Last Post: tomkathy
04-09-2025, 07:58 AM
» Replies: 4
» Views: 2,146
|
Unable to compile and run...
Forum: PULP General questions
Last Post: victorgervasio
03-25-2025, 09:30 AM
» Replies: 2
» Views: 979
|
__builtin_pulp
Forum: PULP General questions
Last Post: yoss
02-18-2025, 04:31 PM
» Replies: 0
» Views: 539
|
|
|
How to solve the problem of missing modules “pulpissimo”? |
Posted by: LanXu - 12-08-2020, 09:05 AM - Forum: PULP General questions
- Replies (1)
|
 |
hi,
I want run openPULP project in zcu104 FPGA.After i ran update_ips script,i make zcu104 under the path ../workspace/pulp/pulp/fpga.The following error occurred:
ERROR: [Synth 8-439] module 'pulpissimo' not found [../workspace/pulp/pulp/fpga/pulpissimo-zcu104/rtl/xilinx_pulpissimo.v:99]
I want to know how to fix this problem,and Is it necessary to build the SDK? Can the SDK be built on the centos7 system?and how?
|
|
|
Help to run Hello Example |
Posted by: igor.lima - 12-01-2020, 08:05 PM - Forum: PULP General questions
- Replies (5)
|
 |
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: <?php
-fno-zero-initialized-in-bss
in my gcc, but not solved my issue. Currently using riscv gnu toolchain 10.1.0.
|
|
|
|