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

Username
  

Password
  





Search Forums

(Advanced Search)

Forum Statistics
» Members: 609
» Latest member: tarbilim
» Forum threads: 152
» Forum posts: 518

Full Statistics

Latest Threads
Resource Utilization of P...
Forum: PULP General questions
Last Post: kgf
11-20-2020, 08:59 AM
» Replies: 1
» Views: 126
Hello Example never reach...
Forum: PULP General questions
Last Post: nikolas
11-19-2020, 05:59 PM
» Replies: 1
» Views: 113
Is there an IDE?
Forum: PULP General questions
Last Post: nikolas
11-19-2020, 08:49 AM
» Replies: 2
» Views: 150
PULPissimo FLL bypass
Forum: PULP General questions
Last Post: Supra
11-06-2020, 09:34 AM
» Replies: 5
» Views: 424
several questions about P...
Forum: PULP General questions
Last Post: stefanct
11-05-2020, 07:34 PM
» Replies: 4
» Views: 2,182
Building an RTL simulatio...
Forum: PULP General questions
Last Post: kgf
11-03-2020, 10:27 AM
» Replies: 1
» Views: 233
how to manipulating of GP...
Forum: PULP General questions
Last Post: stefanct
10-18-2020, 03:57 AM
» Replies: 5
» Views: 4,767
Pulpissimo- errors during...
Forum: PULP General questions
Last Post: plumerai
10-01-2020, 09:38 AM
» Replies: 2
» Views: 601
Adding custom instruction...
Forum: PULP General questions
Last Post: plumerai
09-25-2020, 12:29 PM
» Replies: 4
» Views: 708
FPGA: Printing UART on mi...
Forum: PULP General questions
Last Post: LPLA
09-23-2020, 03:42 PM
» Replies: 0
» Views: 431

 
  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

  32bit data memory write & read
Posted by: RiscV - 07-03-2020, 09:53 AM - Forum: PULP General questions - No Replies

Hi,
I am trying to transmit a 32 bit data from memory to UART through Udma. The problem I am facing is udma transmit bus carry only 1byte data. The code I had written to load 32 bit data to memory is:


Code:
//loading data to memory
lui x16,0x12345
addi x16,x16,0x678   // 32 bit value- 12345678
lui x14, 0x1c010     // address location 1c01000
sw x16,x14
In the udma_tx_ bus the data found is 78787878 in the address location 1c01000.
I checked the memory banks separately. 78 is copying in all four banks, memory write is not happening at that time.What should I do to transmit the entire 32 bit data to 1c01000 location. I want 12345678 data in 1c01000. Please help me.

Print this item

  udma memory to memory data transfer test bench
Posted by: RiscV - 06-29-2020, 09:52 AM - Forum: PULP General questions - Replies (2)

Hi
Currently I am writing a test bench for transferring a 32 bit data from one location to another memory location in RISCV  pulp. I am bit confused how to set the address of DMA transmit bus and the procedure for transferring the data. Can you help me regarding this

code I wrote for transferring data without DMA is

li x15,64
LUI x14, 0x1c000 // Source address selected is 0x1c000001
sw x15, 001(x14)
LUI x13, 0x1c010  // destination address is 0x1c01000
sw x14, 0(x13)

Print this item