LabVIEW 为 FPGA 编程很容易,因为它也使用相同 LabVIEW 开发环境。当
你把目标定为在 NI 的 RIO(实时输入输出),LabVIEW 就只显示可以在 FPGA
中实现的功能,这样进一步使得用 LabVIEW 为 FPGA 编程变简单 LabVIEW
FPGA 模块功能版上包含典型的 LabVIEW 结构与功能,比如 while 循环、for 循
环、case 结构、sequence 结构、一系列专业的 LabVIEW 中 FPGA 专属的数学函
数、信号产生于分析、线性与非线性控制、对比逻辑、数组和簇操作、Occurrence
(意思是事件发生,Occurrence 技术也用于控制相互独立的程序同步运行)、信号
输入与输出和定时。你可以用这些功能的组合往你的 NI RIO 设备上定义逻辑和
嵌入信息。
图二展示了在 NI 的 RIO 硬件上实现 PID(比例积分微分)控制算法的 FPGA
应用和一组在 Windows 机器或 RT 对象和 NI 的 RIO 硬件通信的应用。这种应用
读取模拟输入操作(AIO),运行 PID 计算,并将结果数据输出到模拟输出操作
上(AOO)。当 FPGA 时钟运行在 40MHz 时,这个例子中的循环运行的就很慢,
因为每一组件需要长于一个时钟循环的时间来执行。模拟控制循环在 FPGA 上能
运行在大约 200kHz。你可以指定时钟频率为编译的时间。这个例子只展示了 PID
的循环,然而,在 NI 的 RIO 设备上创造额外功能仅仅是增加另外一个 while 循
环。不像传统的 PC 处理器,FPGA 是并行处理器。在你的应用上增加额外循环
不会影响你的 PID 循环的表现。
第 4 页