Multi Thread / Process access to FPGA

0

Hello.

Is it possible to access the FPGA from multiple threads or processes ?

  • Can I attach to the same FPGA from multiple processes at once?
  • Can I open a DMA queue from two or more processes and transfer data to/from the same FPGA ?
  • Can I use fpga_pci_peek() / fpga_pci_poke() from multiple threads in a process attached to the FPGA ?

Example of utilization :

I have 4 accelerators on the FPGA, each using a DDR4 memory and each having their own memory space (for control through OCL bus and for DDR4 access through PCIS bus) in the memory map.

Can 4 different processes each use an accelerator through the provided interfaces safely ?
Each attach to the same FPGA card on the same slot, each opening a DMA queue, or peeking/poking the OCL bus.
I understand the PCIS and OCL bus will be shared and that a process may have to wait for it to be ready for a call to e.g., to fpga_pci_poke() to be completed.

Is this situation possible / safe ?

Thank you for your time.

Regards.
Rick

Edited by: rwe on Jun 26, 2019 5:55 AM
Added example.

rwe
asked 5 years ago199 views
2 Answers
0

Hi Rick,

Yes, it is OK to use fpga_pci_peek/poke with multiple processes. It is also OK to have different processes use different XDMA channels.

Thanks,
-Asif

awsasif
answered 5 years ago
0

Thank you for this information.

Best Regards.
Rick

rwe
answered 5 years ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions