LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Fastest way to transfer data from RT to FPGA

Hi,
 
my questions are simple.
 
1.) Which ist the fastes way to transfer data (numeric, boolean) from and to a working FPGA on a RT-PXI-system.
I've got a deterministic rt-loop and i have to write and to read data to and from a FPGA.
FPGA-DMA-FIFO or FPGA-Read/Write-"Control" or Global Var. or ...? The transfer have to be in nano/microseconds!
 
2.)What is the fastest way to transfer data between a rt-loop and a lower priority loop (network communication)?
RT-FIFO (1 element) or Notifier or Global Var. or Func. Var (LV2 Var.) or ...? The transfer have to be in micro/milliseconds!
 
Thanx to you
JensG
0 Kudos
Message 1 of 4
(3,206 Views)

Hi,

1) DMA significantly enhances RIO hardware for applications such as buffered intelligent data acquisition, streaming digital communication devices, and in-vehicle data acquisition.

2) About passing data between Normal Priority and Time-critical loop the best way is to use RT FIFO or Shared Variable FIFO.

    Benjamin R.


Senior LabVIEW Developer @Neosoft


Message 2 of 4
(3,197 Views)

Hi BenjaminR,

thanx for you answer.

to 2.) But i think a Shared Var. (with or without FIFO) are very slowly. A Global Var. is much faster. Okay, with more problems, but faster.

I need a very fast data-transfer.

Anyway thanx!

JensG

0 Kudos
Message 3 of 4
(3,180 Views)

Hi,

Using global variables in time-critical priority VIs in LabVIEW Real-Time can compromise determinism. A global variable is a shared resource. If one piece of code accesses a global variable, no other piece of code can access the global variable until the first piece releases the global variable. When you block the access of a time-critical VI to a global variable, forcing the time-critical VI to wait, you introduce jitter to the application and compromise the determinism of the application. You can avoid this behaviour by using a Functional Global, setting it to subroutine priority, and selecting the ‘Skip Subroutine Call if Busy’ option for it. With a Functional Global, the time-critical VI does not have to access the global if another section of code is already using the global. You avoid the delays caused by accessing standard global variables.

    Benjamin R.


Senior LabVIEW Developer @Neosoft


Message 4 of 4
(3,172 Views)