取消
显示结果 
搜索替代 
您的意思是: 

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
 
下载全部
0 项奖励
1 条消息(共 6 条)
3,855 次查看

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 项奖励
2 条消息(共 6 条)
3,842 次查看

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 项奖励
3 条消息(共 6 条)
3,833 次查看

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 项奖励
4 条消息(共 6 条)
3,827 次查看

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 项奖励
5 条消息(共 6 条)
3,820 次查看

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 项奖励
6 条消息(共 6 条)
3,815 次查看