NI Linux Real-Time Discussions

cancel
Showing results for 
Search instead for 
Did you mean: 

Introducing the FPGA Interface Python API

Highlighted

Greetings LabVIEW FPGA and Python users,

 

We have just released the FPGA Interface Python API.  With the FPGA Interface Python API, developers can use LabVIEW FPGA to program the FPGA within NI hardware and communicate to it directly from Python.

 

Check out our documentation here: http://nifpga-python.readthedocs.io/en/latest/ or view the project on github here: https://github.com/ni/nifpga-python

 

We recommend starting with our examples: http://nifpga-python.readthedocs.io/en/latest/examples/basic_examples.html

 

Give it a try and post here or on the github page with any feedback you have!

Message 1 of 14
(4,241 Views)
Highlighted

Where can I find the source of the binary library ?

Linux Embedded / Kernel Hacker / BSP / Driver development / Systems engineering
0 Kudos
Message 2 of 14
(4,116 Views)
Highlighted

@metux wrote:

Where can I find the source of the binary library ?


Unfortunately today we don't release the source of our libraries. 

0 Kudos
Message 3 of 14
(4,051 Views)
Highlighted

I hope you're aware that then it's pretty useless, unless you run exactly the preinstalled image (which pretty rare in embedded linux world).

Linux Embedded / Kernel Hacker / BSP / Driver development / Systems engineering
0 Kudos
Message 4 of 14
(4,045 Views)

Are there any functional or performance advantages to this API over standard RIO interface?

 

Does it go through VISA?

Does it reduce the amount of installed drivers on the deployment machine?

 

Have there been any successful deployments using this?

 


Certified LabVIEW Architect, Certified Professional Instructor, LabVIEW FPGA expert
ALE Consultants
LabVIEW Programming (make LV more popular, read this)

LabVIEW FPGA for High Throughput Applications | VI Week 2020
0 Kudos
Message 5 of 14
(3,664 Views)
Highlighted

The main advantage of this API is that you can talk to the FPGA from Python.  Personally I like python because everyone seems to write python APIs these days.  So its very easy to connect device from company A to device from company B through Python.

 

It does not go through VISA, the Python API is implemented on the same interface that the FPGA Interface C API uses under the hood (NiFpga.dll).  So for performance, at its best it could be as fast at the FPGA Interface C API. 

 

This API does require the drivers for the device to be installed.  The amount of software needed other than drivers though is very minimal as its calling into our driver APIs directly.

 

I've helped a number of customers use the Python API, but I don't have any numbers on deployments.

 

Message 6 of 14
(3,659 Views)
Highlighted

Thanks for the answers.

 

Just want to confirm that the Python to NI FPGA interface only works with bitfiles and not with FPGA VIs (simulation mode).


Certified LabVIEW Architect, Certified Professional Instructor, LabVIEW FPGA expert
ALE Consultants
LabVIEW Programming (make LV more popular, read this)

LabVIEW FPGA for High Throughput Applications | VI Week 2020
0 Kudos
Message 7 of 14
(3,619 Views)
Highlighted

That is correct, the FPGA Interface Python API requires hardware and a compiled bitfile.  It does not support simulation mode.

0 Kudos
Message 8 of 14
(3,585 Views)
Highlighted

Is Peer to Peer supported by the C API and/or Python interface?

 

If not, are there plans to support it?


Certified LabVIEW Architect, Certified Professional Instructor, LabVIEW FPGA expert
ALE Consultants
LabVIEW Programming (make LV more popular, read this)

LabVIEW FPGA for High Throughput Applications | VI Week 2020
0 Kudos
Message 9 of 14
(3,579 Views)
Highlighted

Peer to Peer is supported in C.  On one of my systems I can find the headers for it here: C:\Program Files (x86)\National Instruments\Shared\ExternalCompilerSupport\C\include\nip2p.h

 

Its used in conjunction with the NiFpga_GetPeerToPeerFifoEndpoint function on the FPGA Interface C API.

 

The GetPeerToPeerFifoEndpoint function exists on the FPGA Interface Python API, but there isn't yet a publicly released Python API that calls into nip2p.  We do have an internal P2P Python API built for testing, but I'm unsure of plans to release it.  If you would like to try it out, let me know and I'll see what I can do.  If you would like to request support for using NI-P2P from Python, definitely let us know.

Message 10 of 14
(3,545 Views)