使用LabVIEW编程FPGA
- 了解终端的硬件性能 – 关于FPGA和终端的性能及功能的信息,见特定的FPGA终端或机箱硬件文档。
- 创建应用的FPGA项目 – 开发FPGA应用程序前,必须创建一个带有FPGA终端的LabVIEW项目。
- 创建FPGA VI – 可新建或通过范例VI创建FPGA VI。使用NI范例查找器查找适用于终端的范例VI。
- (可选)创建主控VI – 主控VI在RT终端或PC上运行,可控制和监视FPGA VI。
- 编译和下载FPGA VI至终端 – 必须先编译FPGA VI才能将其下载至FPGA终端并在终端运行。
FPGA硬件概述
FPGA = 逻辑块(Logic Blocks) + I/O块(I/O Blocks) + 可编程线路(Programmable Routing)
触发器(Flip-Flops)、LUT和逻辑片(Slice)
FPGA资源被组合在逻辑片内,以创建可配置逻辑块。每个逻辑片包含一组LUT、触发器和多路复用器(multiplexers)。LUT是FPGA上一组硬接线的逻辑门。LUT是存储每个输入组合的预定义输出列表的逻辑块,因此能够快速获取逻辑操作的输出。触发器是能够实现两个稳态,表示一个比特的电路。多路复用器(通常称为MUX)在两个或多个输入之间选择输入,并输出选中的输入。
寄存器(Register)
寄存器是存储位模式的一组触发器。FPGA上的寄存器带有时钟(clock)、输入数据(input data)、输出数据(output data)和启用信号端口(enable signal port)。在每个时钟周期内,输入数据被触发且存储在内部,然后更新输出数据为与内部存储数据匹配的值。
块RAM
块存储器(块RAM)是嵌入在FPGA上用于存储数据的随机存储器。通常,LabVIEW使用块存储器实现存储器和FIFO函数。用户可指定LabVIEW分别使用FIFO属性和存储器属性对话框实现FIFO和存储器项。
DSP48E和DSP48E1
DSP48E逻辑片是特定FPGA系列包含的数字信号处理逻辑单元。
- 算术运算:乘法累加器、乘加器、单步/n步计数器。
- 逻辑运算:AND、OR、XOR等。
- 使用多个DSP48E逻辑片可在不占用额外FPGA架构资源的前提下实现更为复杂的功能。例如,实现复杂乘法器或n阶FIR滤波器。
DSP48E1是某些FPGA设备的数字信号处理单元。DSP48E1在多个方面扩展了DSP48E逻辑片的功能(例如,在乘法器前包含一个预加器)。该预加器对执行特定的算法非常有用(例如,对称FIR滤波器)。
UltraRAM
UltraRAM (URAM)是一种高度灵活的低密度大容量存储块,可用于大多数Xilinx UltraScale+终端。