using axi from rtl and C code
#1
Hi, I'm trying to add hardware accelerator to the system that would connect with axi-lite slave to pulpissimo.
The system already has master there that I can access from CPU?
I have skimmed through pulpissimo datasheet and bit of the code but I'm lost here.
Got any pointers?
Reply
#2
Hello, 

Davide gave a quite detailed tutorial on PULPissimo during WOSH (3.5 hours). You can find it on our youtube channel:
  https://www.youtube.com/pulp_platform
  https://www.youtube.com/watch?v=27tndT6cBH0 

I think that should cover/answer most of the questions.
Visit pulp-platform.org and follow us on twitter @pulp_platform
Reply
#3
(03-05-2020, 07:41 PM)kgf Wrote: Hello, 

Davide gave a quite detailed tutorial on PULPissimo during WOSH (3.5 hours). You can find it on our youtube channel:
  https://www.youtube.com/pulp_platform
  https://www.youtube.com/watch?v=27tndT6cBH0 

I think that should cover/answer most of the questions.
Thanks.
Reply
#4
There is axi bus in pulp_soc that goes axi_slice_dc_slave_wrap - soc_interconnect.
We removed axi_slice_dc_slave_wrap and routed our axi lite slave to the  s_data_out_bus.
From C we managed write and read to the 4 registers and confirm that the our component did process the data.
If we were to use full axi is there some register or some way to control the burst and confirm that slave got the data in C?

Code:
#define REG_COUNT 4
uint32_t *AXI_START = 0x10000000;

int main(void)
{
 for(int i = 0; i < REG_COUNT; i++) {
   AXI_START[i] = 0xff00ff00;
 }

 for(int i = 0; i < REG_COUNT; i++) {
   printf("%08x\t", AXI_START[i]);
 }
 return 0;
}
Reply
#5
Hi,

Were you able to attach your hardware accelerator via axi-lite to PULPissimo?
If then could you please describe the procedure to do so?

Thanks,
Jones
Reply
#6
Hi jem,

With some reccent changes to the soc_interconnect architecture the situation changed quite a bit and attaching an AXI/AXI-lite peripheral to PULPIssimo became a lot easier. The new interconnect already contains a fully AXI4 compliant AXI crossbar. The soc_interconnect_wrap.sv in ips/pulp_soc/rtl/pulp_soc converts one of the crossbar outputs to APB by going the roundabout via AXI-lite (because we do not have a direct protocol converter from AXI4 to APB). You can use this module as a reference on how to convert from AXI4 to AXI4-lite. In order to add a new port to the AXI crossbar for your peripheral, please have a look at the following discussion on Github: https://github.com/pulp-platform/pulpissimo/issues/222
Reply


Forum Jump: