配置主机内存缓冲区
- 更新时间2025-10-09
- 阅读时长3分钟
某些FPGA终端包含主机内存缓冲区,用户可通过FPGA VI直接访问这些内存。在项目中使用存储器项接口,此时使用主机内存缓冲区的方法与存储器块和LUT的使用方法类似。主机内存缓冲区项位于项目浏览器窗口的FPGA终端下。
多数使用主机内存缓冲区的FPGA应用可从FPGA存储器项接口提供的可用性和VHDL优化特性中受益。不能使用通过VI定义的存储器项配置主机内存缓冲区。
确定主机内存缓冲区是否可用
按照下列步骤判定主机内存缓冲区在用户终端上是否可用。
- 显示项目浏览器窗口
- 右键单击FPGA终端,选择内存属性。
- 打开实现下拉列表并选择DRAM。
- 打开DRAM存储块下拉列表。如主机内存缓冲区可用,它将包括在列表中。
划分物理主机内存缓冲区为多个存储器项
FPGA存储器项接口可用于划分终端上可用的物理主机内存缓冲区存储块为多个存储器项。使用存储器属性对话框创建和配置主机内存缓冲区存储块上的内存分区。例如,如终端带有2个物理主机内存缓冲区存储块,用户可将其中一条内存划分为3块存储器,另一条内存划分为5块存储器。如下图所示。LabVIEW将每块存储器视作独立的部分。
了解延迟和主机内存缓冲区
主机内存缓冲区的访问包含一些非确定性的延迟。使用请求数据和获取数据方法从主机内存缓冲区读取数据可补偿该数据延迟。使用请求数据方法可排序多个访问数据的请求,通过获取数据方法可获取请求的数据。通过握手信号示意可接收数据时,主机内存缓冲区将返回请求的数据。
数据推荐
如使用的数据类型小于存取大小,则剩余的位数接收未知和无效值,但仍然会被写入并占用空间和带宽。如存取大小宽度为64位,同时配置主机内存缓冲区时选择的是32位数据类型,则未知和无效数据将有32位。下图显示了优化后的存储器元素和数据类型小于存取大小的存储器元素。
NI建议使用与主机内存缓冲区存取大小宽度相同的数据类型以优化存取。存储器项接受簇作为数据类型,同时信息也可打包成簇以实现大于LabVIEW原生数据的数据类型。
NI建议在40 MHz板载时钟域范围内将数据推送至存储器项接口。右键单击项LabVIEW项目的FPGA终端,选择新建»存储器。将数据以时钟速率的速度推送至存储器项接口可最大化带宽。
请求流水线
主机内存缓冲区架构呈高度流水线型,因而数据请求和执行请求之间存在较长延迟。NI建议预先请求采样,有助于保持高吞吐率。如要预先请求采样,可请求要读取的采样,无需等待提取方法的数据有效选通。