某些FPGA终端包含板载动态随机访问内存(DRAM),用户可通过FPGA VI直接访问这些内存。LabVIEW支持两种类型的DRAM接口:

  • FPGA存储器项-在项目中使用存储器项接口,此时使用DRAM的方法与存储器块和LUT的使用方法类似。DRAM存储器项位于项目浏览器窗口的FPGA终端下。
  • 插槽CLIP-在项目中使用CLIP接口,以直接与板载DRAM通信。插槽CLIP列出了所有与选中DARM存储器项兼容的内存接口。

多数使用DRAM的FPGA应用可从FPGA存储器项接口提供的可用性和VHDL优化特性中受益。但仍可使用插槽CLIP接口访问使用I/O信号的原地址。不能同时使用FPGA存储器项和插槽CLIP访问VI的同一个DRAM内存。不能使用通过VI定义的存储器项配置DRAM。

判定DRAM是否可用

按照下列步骤判定DRAM在用户终端上是否可用。

  1. 显示项目浏览器窗口。
  2. 右键单击FPGA终端,选择属性
  3. 如用户终端的DRAM可用,DRAM属性将显示在对话框左侧的类别列表中。
注: 如DRAM不可用于终端,存储器属性对话框的实现下拉菜单中不会列出DRAM选项。

划分物理DRAM为多个存储器项

FPGA存储器项接口可用于划分终端上可用的物理DRAM内存为多个存储器项。使用存储器属性对话框创建和配置DRAM块上的内存分区。例如,如终端带有2个物理DRAM内存条,用户可将其中一条内存划分为3块存储器,另一条内存划分为5块存储器。如下图所示。LabVIEW将每块存储器视作独立的部分。

创建存储器分区后,必须使用“FPGA终端属性”对话框的DRAM属性页面配置同一DRAM内存条中的分区仲裁。

对DRAM内存条的仲裁访问

划分DRAM为多个存储器项后,可配置LabVIEW访问每个分区的时间。默认情况下,LabVIEW为所有分区分配相等的时间。DRAM判定器与同一共享资源的判定不同请求的判定器不是同一个判定器。

在FPGA终端属性对话框的DRAM属性页面中指定分配给每个分区的时间。LabVIEW使用轮叫调度分配用于每个分区的时间。

延迟和DRAM

DRAM的访问包含一些非确定性的延迟。使用请求数据和获取数据方法从DRAM读取数据可补偿该数据延迟。使用请求数据方法可排序多个访问数据的请求,通过获取数据方法可获取请求的数据。通过握手信号示意可接收数据时,DRAM将返回请求的数据。

如要优化DRAM性能,请以脉冲形式发送数据请求或写入数据至DRAM。