I currently have code working on a sbRIO-9632 but I'm trying to evaluate the newer sbRIO-9626. So, it was suggested to me to try and compile my existing FPGA code with the 9626 selected as the target. So, I added this new target and brought over all the VIs (this is a pain). However, when I try to compile it, I always get 4 errors that I'm not really sure how to decipher.
ERROR:HDLCompiler:1566 - "C:\NIFPGA\jobs\PhX8xl4_q6iF6bO\BlueMoonAiFrontEndLogic.vhd" Line 95: Expression has 16 elements ; formal kaidefaultvoltageranges expects 32 ERROR:HDLCompiler:1566 - "C:\NIFPGA\jobs\PhX8xl4_q6iF6bO\BlueMoonAiFrontEndLogic.vhd" Line 96: Expression has 16 elements ; formal kaidefaultterminalmodes expects 32 ERROR:HDLCompiler:432 - "C:\NIFPGA\jobs\PhX8xl4_q6iF6bO\BlueMoonAiHighQualityFrontEndLogic.vhd" Line 51: Formal <kaidefaultvoltageranges> has no actual or default value. ERROR:HDLCompiler:432 - "C:\NIFPGA\jobs\PhX8xl4_q6iF6bO\BlueMoonAiHighQualityFrontEndLogic.vhd" Line 52: Formal <kaidefaultterminalmodes> has no actual or default value.
It seems to me that it may be related to the number of analog input channels, there are only 16 on the board and it could be expecting 32 or something. I'm only guessing here though.
If anyone has an idea as to why this might be happening, your help would be much appreciated.
If you try compiling your code on another similar target, do you get the same errors? Do you get these errors if you compile a simple program or a shipping example with the 9626 selected as the target?
Ok, so I spent an hour+ trying to figure this out with a new project from the robotics wizard.
Final Result: I can compile a simple loop with a single analog input and indicator. If I then go and remove all the unused Analog pins from the project, it no longer compiles and gives me the same errors as stated in the first post (witth the 16 replaced by 2). There is only 1 analog input in the project and on the FPGA VI.
I played around a little more. The only thing that I could do to get it to fail to compile is to remove any number of unused analog inputs from the project. I.e. I only need to remove a single analog input from the project and it fails to compile. I can remove digital I/O from the project with no effect.
This is really baffling to me. Is there any logical explanation as to why I need to have all AI's in the project file?
That being said, I was able to compile my original FPGA code by adding all of the unused AI to the project file.
I'm glad you were able to get your project working!
It turns out this is a known issue and was fixed in version 13.0.0 of the RIO driver I believe. What version of the RIO driver are you using?
I updated to NI-RIO 13.0 but I still have the same issue. MAX correctly shows version 13.0 installed so is there something else that I need to do to fix it? Is there a public document describing the issue?
There is not currently public documentation on this issue. I tried reproducing this on my system (LabVIEW 2013, RT/FPGA 13 and NI RIO 13.0.0) with a sbRIO 9626. I was unable to reproduce the error. I can delete unused AI and successfully compile and run a VI.
You said you installed the version 13.0.0 of the RIO driver. Have you pushed that software to the sbRIO by reformatting it?
I don't have an actual sbRIO-9626. I'm just trying to evaluate resource usage with my existing code (originally written for a sbRIO-9632). So, the only thing that I'm doing is compiling and that is failing.
However, since I'm able to compile with all the AI in the project, I'm not too worried (because it's not really all that many and they can be tucked away in a folder if needed).