LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

A Labview program with 4 DMA FIFO on FPGA card which can support only 3 DMA

Solved!
Go to solution

Hello,

 

I'm a beginner on LabVIEW FPGA, in my work placement I work on the program of a previous trainee, he has over his work placement and he has published this program in his report.

 

The problem on his program, it's he has set 4 DMA FIFO on it, but the FPGA card (NI PXI-7951) where we work me and the trainee support only 3 DMA, so I can't run the program, I have this error :

 

Error DMA.PNG

 

I wonder if it's a bug or anything else, any ideas ?

0 Kudos
Message 1 of 6
(3,136 Views)

It is not a bug.  Most FPGA cards only have 3 DMA channels.  If you used a fourth, then you get yelled at.

 

Now I would question if you actually even need these DMA channels.  From what I can gather from the VI, you could remove the two DMAs that are being read.  Those could be simple controls on the front panel that you could write to directly in your host program.  Your write DMA channels may still be needed if you need to read every value that is read from the FPGA.

 

 


GCentral
There are only two ways to tell somebody thanks: Kudos and Marked Solutions
Unofficial Forum Rules and Guidelines
"Not that we are sufficient in ourselves to claim anything as coming from us, but our sufficiency is from God" - 2 Corinthians 3:5
0 Kudos
Message 2 of 6
(3,128 Views)

Alexis38 wrote:

 

I wonder if it's a bug or anything else, any ideas ?


This is a feature.  It makes sure the code you write will work on the hardware it is compling for.  In this case it will not.  Reuce the number of DMAs used, or use hardware that has the number of DMAs you need.

0 Kudos
Message 3 of 6
(3,095 Views)

A lot of our older devices do only have access to 3 DMA channels.  Newer targets tend to have more available but we do list how many are on each specific device in the following KB.

 

http://digital.ni.com/public.nsf/allkb/0A008919E1551B1A86257B9D00764FC4

 

In addition to what crossrulz stated about changing some of your FIFOs to read front panel controls, you could also build an array out of those two values and pass the elements through a single FIFO similar to what is done in this community example.

 

https://decibel.ni.com/content/docs/DOC-6303

Matt J | National Instruments | CLA
0 Kudos
Message 4 of 6
(3,089 Views)

@Jacobson-ni wrote:

A lot of our older devices do only have access to 3 DMA channels.  Newer targets tend to have more available but we do list how many are on each specific device in the following KB.

 

http://digital.ni.com/public.nsf/allkb/0A008919E1551B1A86257B9D00764FC4

 

In addition to what crossrulz stated about changing some of your FIFOs to read front panel controls, you could also build an array out of those two values and pass the elements through a single FIFO similar to what is done in this community example.

 

https://decibel.ni.com/content/docs/DOC-6303


Or bit packing them.

---
CLA
0 Kudos
Message 5 of 6
(3,066 Views)
Solution
Accepted by Alexis38

Sorry to reply as late, thank you for your answer thank to your help I could change my program, now the program run with 3 three DMA, I used a array for put 2 signals in only one FIFO DMA.

I show the program, which can help someone with the same problem.

0 Kudos
Message 6 of 6
(2,968 Views)