From 04:00 PM CDT – 08:00 PM CDT (09:00 PM UTC – 01:00 AM UTC) Tuesday, April 16, 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: 

FPGA Code Generation Error

When I build my FPGA I get the following error:
 
An internal software error has occurred. Please contact National Instruments technical support at ni.com/support with the following information:
Error -61003 occurred at
Possible reason(s):
LabVIEW FPGA:  You cannot include this function in a For Loop when the For Loop is inside a single-cycle Timed Loop.
 
My FPGA code is attached below.
 
It seems like it is due to my sub vi in a for loop in a single cycle timed loop, but I can't find anywhere taht says I can't do this.
 
The FPGA Main is set for preallocated clone reentrant execution.
 
Thanks
 
Download All
0 Kudos
Message 1 of 6
(3,113 Views)

I can't see your VIs as I don't have LV 2015 but did you read this article under 'Can all functions and structures be used inside the SCTL?', you might also have some timing restrictions if the logic inside your SubVI can't be completed in a single cycle. The obvious one that sticks out is if your SubVI has a divide, quotient/remainder or performs some SGL floating point operations.


LabVIEW Champion, CLA, CLED, CTD
(blog)
0 Kudos
Message 2 of 6
(3,100 Views)

Thanks.  I did read that article and I don't think I have anything listed in there.  My code ran before I put it in the for loop (I was doing one speed before and now I want to do 3).

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

Does the error occur some time into the compilation, or as soon as it starts generating the intermediate files? If it's the first one, it might be that it just can't run that much logic in one clock cycle.

 

You could try:

- turning on parellelism on the for loop

- index the items from the array into separate instances of the SubVI to allow them to run in parallel


LabVIEW Champion, CLA, CLED, CTD
(blog)
0 Kudos
Message 4 of 6
(3,085 Views)

I can't turn on parallelism, it won't let me even start the compile.

 

I could index the arrays and remove the for loop, but I would rather not if I don't have to.  It wouldn't be too bad in this instance, but for future developments it would be nice to know if I can do it with a for loop.

 

0 Kudos
Message 5 of 6
(3,078 Views)

Ok, if you can't turn on parallelism, then it means that LabVIEW has to run the operations sequentially (one after another), this probably means it takes more time than can be completed in a single cycle - hence your compilation errors.

 

You will have to make the operations happen in parallel (e.g. by splitting the array, doing the operations in parallel and then recombining) for it to have a chance of completing in a single cycle.


LabVIEW Champion, CLA, CLED, CTD
(blog)
0 Kudos
Message 6 of 6
(3,073 Views)