From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Hardware Developers Community - NI sbRIO & SOM

cancel
Showing results for 
Search instead for 
Did you mean: 

Will a RT-side sbRIO-9606 keep up with this DMA FIFO writing rate?

Hi,

Please have a look at this super-simple FPGA vi which I run on my sbRIO-9606:

 

unai20180223.png

 

I am doing my best to design an RT host-side vi to read the DMA FIFO data, and show them somehow; but I have not succeeded yet: plenty of timeouts occur.

I am afraid I may have hit some sort of built-in limitation on the RT part of the sbRIO-9606 -- or within myself 🙂

So, could anyone suggest some sort of simple host-side vi being able to keep up with this 40-MHz transfer rate?

Any help appreciated!

Biscay.

0 Kudos
Message 1 of 9
(4,541 Views)

Looks like the datatype is U32.

4 bytes x 40 million = 160 megabytes per second. Did you check the throughput specs? 


Certified LabVIEW Architect, Certified Professional Instructor
ALE Consultants

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

Hi Terry, this is the closest thing to a spec that I found:

specs_cpu.png

So the question may be, how many clock cycles does it take for the RT Host (to be precise, its RT OS) to grab the data from the FIFO?

0 Kudos
Message 3 of 9
(4,528 Views)

That is not the spec I would use for this.  PXIe chassis have throughput specs but I cannot find one for this product.

I did find a similar discussion on the topic which quotes throughput at 300 MB/sec so you should be fine.

See: https://forums.ni.com/t5/Hardware-Developers-Community-NI/Bandwidth-from-FPGA-to-RT-on-9606-and-9651...

 

Moving ahead, what happens to the data after it gets to the RT?

 

PS have you considered data reduction?  One of the benefits of an FPGA is that you can add filtering or some kind of data reduction so you look at only the data you care about and save on storage and post-processing.

 


Certified LabVIEW Architect, Certified Professional Instructor
ALE Consultants

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

How many elements are you reading at once on the RT side?

If you are trying to keep up by reading one element at a time, you will get timeouts as the RT won't be able to keep up.

You should read back an array of data (typically a fixed number of elements).

 

You have to adjust the size of the FIFOs on the host and the FPGA to reduce the likelihood of Timeouts.

Ryan Vallieu CLA, CLED
Senior Systems Analyst II
NASA Ames Research Center
0 Kudos
Message 5 of 9
(4,516 Views)

Terry, thanks again for your advice. And Hello Ryan.

I have considered data reduction, yes indeed.

Here's the full story: I need to process the ABZ signals provided by a 2500-ppt rotational encoder. The final design will to plenty of data reduction: a subvi of the FPGA will take charge of "understanding" the "encoder language", and hand a neat position value out to some internal register.

However, I'm still curious as to whether the custom-made interface board will do its work. For example, I used two ADN4668 "3V LVDS Quad CMOS Differential Line Receivers", and would like to check them out before plugging the encoder. So I thought, "let's first try to pass the raw encoder ABZ signals to a Waverform Graph, to see that everything goes OK on the hardware part". So, right now, basically I'm trying to implement a 40-MHz digital scope. Which seems to be too much for the relatively feeble RT-side of the sbRIO-9606.

Regards!

0 Kudos
Message 6 of 9
(4,506 Views)

I've done that in the past - passing up encoder signals to a host for visualization - you should be able to do it, you just need to buffer accordingly on the RT and then pass the data to the PC over TCP connection - don't try to use the RT in Interactive Front Panel mode plotting data and trying to keep up with DMA transfers, etc.  Interactive Front Panel operation really taxes the RT processor. (if that is what you are doing).

Ryan Vallieu CLA, CLED
Senior Systems Analyst II
NASA Ames Research Center
Message 7 of 9
(4,489 Views)

The link with the other specs looks like the hardware should be able to handle 40 MHz of data.

If it cannot keep up, you can put decimator on the FPGA so that it sends every other sample or less to the point where the RT can keep up with the FPGA.


Certified LabVIEW Architect, Certified Professional Instructor
ALE Consultants

Introduction to LabVIEW FPGA for RF, Radar, and Electronic Warfare Applications
Message 8 of 9
(4,485 Views)

Hi both! Thanks for your advice. Yes, I'm going to decimate the samples; I'll have to. On the other hand, yes, I'm using the RT front panel; I agree that it is an avid resource eater; I wish I had time for delving into programming TCP sockets... but that's not the case for the time being.

If I find out something meaningful I will let you know.

Regards!

0 Kudos
Message 9 of 9
(4,468 Views)