I am running out of memory when trying to compile a large FPGA personality VI. LabVIEW throws an error and crashes when it reaches the 4GB memory limit while generating intermediate files (specifically stage 3/5). I have 8GB of RAM installed on the laptop. I know that only 4GB can be used by LV 32 bit, and there is not a 64 bit version of LV FPGA. Does anyone have a solution or workaround for this? Further decreasing the size of my VI is not an option. I wonder if it is possible for the Xilnix compilation tool itself to acess more memory?
Solved! Go to Solution.
What are you doing on the FPGA or else where in your application that is causing you to use 4GB of memory? How big is just the FPGA file itself? Generating the intermediate file is all done in LabVIEW so I don't believe allocating more memory for Xilnix will change the error you are seeing.
What is the file size of your FPGA VI? Also, what are you doing in your FPGA VI or in the other part of your application that causes you to use the 4GB?
All of the intermediate file generation happens in LabVIEW so I don't believe increasing the memory of Xilinx will change the error you are seeing.
The VI is 936KB. I can't discuss the function of the VI for confidentiality reasons.
The reason I asked about the Xilnix compiler is because I had a similar VI that got through intermediate file generation, but the Xilnix program ran out of memory. If I push the build to the NI compile farm rather than compile it on my laptop, will the compiler program have the same limitation?
I don't think that size of an FPGA file shouldn't be causing you to go over 4 GB of Memory. Have you tried creating a new project and only having the FPGA VI under the correct target in this project, compiling the FPGA VI under that project, and then bringing the bit file over to the original project?
When you say the Xilnix program ran out of memory, is it the program itself running out of memory or is the FPGA you are compiling for running out of memory?
I don't think a project that only includes the FPGA VI would compile. My project includes only items that are necessary to build the bitfile: DMA FIFO read & write, a global variable sub VI, and two other sub VIs, all of which are used in the FPGA VI. I think a key issue is that it handles many arrays that are up to 64 elements each. I have taken care to not include functions that take up lots of space on the FPGA, avoided coersion, etc, but the large arrays are a necessary component.
Yes, the Xilnix program itself runs out of memory. If I remember correcly, the compiler showed the error message "A Xilnix application has run out of memory..." and it indicated that 4GB RAM was reached.
I am learning toward the conclusion that I will have to wait for a 64-bit version of LabVIEW FPGA to be released (along with a 64-bit compiler) in order to build the VI in the desired way.
I created another FPGA VI that causes the Xilnix compiler to run out of memory after the pre-synthesis, which seems odd to me since it is very similar to one that I have that builds successfully. In case you are still curious, here is the error message.
Thanks for the Images. I have done more looking on my end and compiling on the cloud might help with Xilinx running out of memory, but still doesn't fix the issue with LabVIEW running out of memory during intermediate compilation.
The fact that when using large arrays, you get this error does not surprise me and in my searching I actually found documentation on our end that customers in the past have run into this issue when using big arrays in LabVIEW FPGA. You are correct in saying that if you are not able to rework your FPGA code you would need a 64-bit version for this to work.
Hope this helps!