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.

LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Programmatically initialize FPGA Read Only Memory

I have a VI that interfaces with an FPGA using the following process:

 

1) Vi opens a configuration file and reads an equation Fx(X,Y)=Z.

2) The Vi runs the equation and creates a block of memory (Mz) of Z from (0,0) to (300,300). 

3) The Vi uploads Mz to the FPGA

4) The FPGA takes signal inputs, runs them through Mz, and returns modified data.

 

Currently, I have a working system for this process. However, for step 3 I use a FIFO to construct Mz on the FPGA. However, this uses a Host to target FIFO slot that would be otherwise available.

 

Is there a way to configure the memory inside the FPGA at initialization without using a FIFO in this way? 

JScherer_0-1644264508622.png

I know this menu works in the project to set initial values before compilation, but is there a programmatic way to do this after the FPGA and VI are complied?

 

Considerations:

  • The VI will be compiled into an exe.
  • The configuration file will change every 3 months.
0 Kudos
Message 1 of 3
(643 Views)

Hi JS,

 


@JScherer wrote:

Is there a way to configure the memory inside the FPGA at initialization without using a FIFO in this way? 


To send data from host to FPGA you can use:

  • FIFOs
  • controls on FPGA main VI frontpanel

When you don't want to use FIFOs you should use controls: implement a handshaking algorithm using a control for your data and one or more boolean controls for handshaking between host and FPGA…

(It will take some iterations to send your 90601 elements using this way.)

Best regards,
GerdW


using LV2016/2019/2021 on Win10/11+cRIO, TestStand2016/2019
0 Kudos
Message 2 of 3
(639 Views)

@GerdW wrote:

implement a handshaking algorithm using a control for your data and one or more boolean controls for handshaking between host and FPGA…

(It will take some iterations to send your 90601 elements using this way.)


Understood, I was afraid I'd have to build that system of controls/latches to write and check 90k elements. I think that's likely not worth the time considering the efficiency loss.   

0 Kudos
Message 3 of 3
(629 Views)