LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

DMA host to FPGA array size

Currently, I am sending 3 clusters with 11 element each to the FPGA (PXi-7833R).  I thought perhaps, it will be more resource efficient if I were to send the data to the FPGA through a DMA instead.  Is that the case?  

 

When the data arrives at the FPGA, I use a for loop to read all 33 elements into an array, and use the array to build the original 3 clusters within the FPGA.  By doing that, I eliminate the 3 clusters of the FPGA front panel.  On the FPGA side, I dequeue the 33 elements from the DMA with a for loop, but LabVIEW is telling that that array is not a fixed size.  Is there a way around this?

------------------------------------------------------------------

Kudos and Accepted as Solution are welcome!
0 Kudos
Message 1 of 11
(3,072 Views)

How often are you updating these clusters?  If not very often, then just put the clusters on the front panel of your FPGA and write directly through them using the FPGA interface.  It will be less of a hack.


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
Message 2 of 11
(3,053 Views)

Can you post your code? That would make it much easier to understand where the undefined-size array is. I can't think of any reason this wouldn't work, so I suspect that it's simply a programming error, and a not a fundamental problem with the approach. That said, I don't know if you'll save resources - you might just be trading some resources for others. The FIFO will occupy a block of memory and there will be some logic needed to decimate it. If your clusters are all have the same number and type of elements (ie, could be wired to each other), and you don't need the high throughput of the FIFO, you could also do this with a single cluster control, a boolean (or interrupt) for handshaking, and maybe an index as to which cluster is updated if you don't always want to do them in sequential order.

Message 3 of 11
(3,023 Views)

I already have cluster on the FPGA front panel for data transfer.  I am trying to explore other way to see would resource utilization goes down.

------------------------------------------------------------------

Kudos and Accepted as Solution are welcome!
0 Kudos
Message 4 of 11
(3,019 Views)

@jyang72211 wrote:

I already have cluster on the FPGA front panel for data transfer.  I am trying to explore other way to see would resource utilization goes down.


I may have misunderstood your original post. I thought you meant that you currently have 3 cluster controls on the front panel, and I was suggesting you could replace them with a single cluster, but maybe that's what you already have.

Message 5 of 11
(3,015 Views)

Actually, I do have 3 cluster on front panels now.  Would using one cluster be a lot better?

------------------------------------------------------------------

Kudos and Accepted as Solution are welcome!
0 Kudos
Message 6 of 11
(3,004 Views)

@jyang72211 wrote:

Actually, I do have 3 cluster on front panels now.  Would using one cluster be a lot better?


No, but it might be a little bit better, depending on the number and type of elements in the cluster.

Message 7 of 11
(2,995 Views)

I think this gets back to the request for more information about your application. What are those 3 clusters used for? How often do they get updated? Do they always have similar element values or are they completely different? Do you need to read the values back from the FPGA? Things like that would help design things correctly.

Message 8 of 11
(2,991 Views)

The clusters are used to passed data from host to FPGA.  They get updated once every minute or more.  Before the clusters are updated, a false case in a while loop is executed.  The false contains little code.   After the clusters are populated, a true case of the while loop is executed, which contains code for waveform injection.  The elements in the clusters are all numeric of different type.  These clusters are only from host to FPGA.  

------------------------------------------------------------------

Kudos and Accepted as Solution are welcome!
0 Kudos
Message 9 of 11
(2,961 Views)

I tried to repeat the problem, but I can't.  I will look deep into this and post an example.  

------------------------------------------------------------------

Kudos and Accepted as Solution are welcome!
0 Kudos
Message 10 of 11
(2,960 Views)