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.
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!
Where can I find the source of the binary library ?
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).
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?
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.
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).
That is correct, the FPGA Interface Python API requires hardware and a compiled bitfile. It does not support simulation mode.
Is Peer to Peer supported by the C API and/or Python interface?
If not, are there plans to support it?
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.