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
gefragt vor 5 Jahren203 Aufrufe
2 Antworten
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
beantwortet vor 5 Jahren
0

Thank you for this information.

Best Regards.
Rick

rwe
beantwortet vor 5 Jahren

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen