From Saturday, Nov 23rd 7:00 PM CST - Sunday, Nov 24th 7:45 AM CST, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

NI Linux Real-Time Discussions

cancel
Showing results for 
Search instead for 
Did you mean: 

Introducing the FPGA Interface Python API

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 17
(9,791 Views)

Where can I find the source of the binary library ?

Linux Embedded / Kernel Hacker / BSP / Driver development / Systems engineering
0 Kudos
Message 2 of 17
(9,666 Views)

@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 17
(9,601 Views)

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 17
(9,595 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
ALE Consultants

Introduction to LabVIEW FPGA for RF, Radar, and Electronic Warfare Applications
0 Kudos
Message 5 of 17
(9,214 Views)

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 17
(9,209 Views)

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
ALE Consultants

Introduction to LabVIEW FPGA for RF, Radar, and Electronic Warfare Applications
0 Kudos
Message 7 of 17
(9,169 Views)

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 17
(9,135 Views)

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
ALE Consultants

Introduction to LabVIEW FPGA for RF, Radar, and Electronic Warfare Applications
0 Kudos
Message 9 of 17
(9,129 Views)

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 17
(9,095 Views)