用户可创建数组大小可变的FPGA VI,该数组在编译时将转换为单个大小。编译FPGA VI至位文件时,代码的多个实现不能被动态调用。该限制表明LabVIEW必须能够在编译时判定数组输入或输出的大小。下表介绍了在FPGA应用中实现可变大小数组的操作、说明和限制条件。

数组运算 对于在FPGA模块中支持数组输入或输出的函数,LabVIEW通过检查函数的输入判定数组输出的大小。如函数仅包含标量或固定大小的数组输入,LabVIEW计算固定大小的数组输出。如其不能计算固定的大小,LabVIEW将返回错误。
类和簇 编译时可转换为单个大小的数组可被嵌入至簇和类中。
子VI LabVIEW跟踪记录子VI数组的大小,以将其传入或传出FPGA VI。对于非重入子VI,如两个调用得到的数组大小不匹配,LabVIEW将对该前面板控件和全部对该VI的调用返回错误。
移位寄存器 未初始化的移位寄存器默认数组大小为零。对于初始化移位寄存器,LabVIEW通过检查输入接线端计算数组大小。如初始化输入端的大小不匹配,LabVIEW将返回错误。
反馈节点 LabVIEW比较“反馈节点”输入端与初始化接线端的数组大小。如大小不匹配,LabVIEW将返回错误。对于未初始化的反馈节点,LabVIEW为初始化接线端使用零值。
选择函数 仅当两个输入数组大小编译时静态地转换为同一固定大小时,LabVIEW才能推断选择函数的输出数组大小。否则,LabVIEW可返回错误。
条件结构 仅当“条件”结构中全部程序框图的输入数组大小编译时静态地转换为同一固定大小,LabVIEW计算“条件”结构输出隧道的数组大小。否则,LabVIEW可返回错误。
For循环 LabVIEW根据For循环执行的次数,计算自动索引输出隧道的数组大小。必须连线常量值至计数接线端。如不能静态转换数组输出的大小,LabVIEW将返回错误。
强制转换 如果将可变大小的数组连接到不匹配的固定大小接线端(如子VI接线端和显示控件),则会根据固定大小接线端的长度强制填充或截断数据。如果将固定大小的数组连接到可变大小的接线端,将强制可变大小的接线端使用固定大小数组的大小。
捆绑数组 LabVIEW计算捆绑数组的值等于或小于捆绑值。如捆绑数组编译时不能转换为单个大小,LabVIEW将返回错误。
自动预分配数组和字符串 如在VI属性对话框的执行页中勾选自动预分配数组和字符串复选框,可混合使用固定大小和可变大小的数组,LabVIEW将强制转换数据。