LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

How exactly does the memory in Labview Fpga work

Solved!
Go to solution

I am using a PXI 7853 and I for the past few days I have been playing around with using Memory blocks in the FPGA .

Now I am relatively new to Labview FPGA programming and hence I would be grateful if someone could provide me with clarifications on teh following :

 

a) Since I am working on the development host computer when I initialize the Memory with the option of using a Memory initialization VI then how does it exactly happen in the backend .What I mean to ask is , when i change values of memory in the development computer and then compile the FPGA VI into the board ,is it that the Memory information is ported into the FPGA .If this is the case then in what form are the details initially saved in the development computer .

 

b) Is it possible for me to use the initialization VI method to change the valuesi n memory while the FPGA VI is running .If not ,then would it make a difference if I stop the VI and then change the values using initialization method .Would that actually reflect on the FPGA or should I have to re compile the FPGA VI every time I change the memory values in the development computer using the 'Initialization VI method ( that is available as an option when we right click on the memory block in the project explorer window )

 

I tried testing with simulation for FPGA VI and found that when i try to change the memory values by running the initialization VI . a pop up comes that says that it is not possible as the FPGA VI is still in use .

Any light on this or guidance with links would be highly appreciated 

Cheers 

sbkr

0 Kudos
Message 1 of 3
(2,449 Views)
Solution
Accepted by topic author sbkr

sbkr wrote:

a) Since I am working on the development host computer when I initialize the Memory with the option of using a Memory initialization VI then how does it exactly happen in the backend .What I mean to ask is , when i change values of memory in the development computer and then compile the FPGA VI into the board ,is it that the Memory information is ported into the FPGA .If this is the case then in what form are the details initially saved in the development computer .


When you compile the FPGA VI, it will include the values used to initialize the memory.

Are you asking what happens if you run the FPGA VI on your development computer, and your FPGA VI writes to the memory block, will the new values be included when you compile the FPGA VI? No, those values will be lost. The values that are included in the bitfile are the values that you used to initialize the memory block, as defined in the memory properties dialog box. The initial values are saved in the LabVIEW project file along with the memory block definition.


sbkr wrote:

b) Is it possible for me to use the initialization VI method to change the valuesi n memory while the FPGA VI is running .If not ,then would it make a difference if I stop the VI and then change the values using initialization method .Would that actually reflect on the FPGA or should I have to re compile the FPGA VI every time I change the memory values in the development computer using the 'Initialization VI method ( that is available as an option when we right click on the memory block in the project explorer window )


You need to recompile the FPGA in order to use new initialization values, because those values are part of the FPGA bitfile.

0 Kudos
Message 2 of 3
(2,411 Views)

Thank you very much .Your answers were very clear 🙂

I was trying to explore the various ways in which the memory values can be altered and was trying to understand how the method of initializing through 'Memory initialization VI ' can be used during run time of the FPGA .From the looks of it an FPGA recompile stands in the way 🙂

 

Cheers 

Me 🙂

0 Kudos
Message 3 of 3
(2,392 Views)