集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 5421|回复: 11

手把手教你FPGA存储器项使用DRAM(NI LabVIEW FPGA)

[复制链接]
lcytms 发表于 2017-10-11 09:09:11 | 显示全部楼层 |阅读模式
本帖最后由 lcytms 于 2017-10-11 09:14 编辑

手把手教你FPGA存储器项使用DRAM(NI LabVIEW FPGA)


信息来源:http://www.eepw.com.cn/article/201710/365206.htm


某些FPGA终端,包含板载的、可以动态随机访问的存储块(DRAM),这些存储块可以在FPGA VI中直接访问,速率非常高。

DRAM可以用来缓存大批量的数据,而且速度可以非常快。
针对一些特殊应用,比如:瞬时带宽非常高,而且有要保存原始数据的时候,就可以用DRAM做一个大的FIFO缓冲。
  
DRAM的大小每块板卡可能不同,一般在官网中对应板卡的说明中都会标明DRAM的大小(如果有DRAM的话)。
比如,PXIe-7966R就有512M的DRAM空间。
  http://sine.ni.com/nips/cds/view/p/lang/zhs/nid/210272

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-10-11 09:11:10 | 显示全部楼层
本帖最后由 lcytms 于 2017-10-11 09:22 编辑

不同的板卡板载内存大小不同,同时DDR系列也可能不同,7976R拥有高达2GB的板载缓存,且为DDR3,容量更大且速度更快。
  http://sine.ni.com/nips/cds/view/p/lang/zhs/nid/212692

PXIe-7966R拥有512M的板载内存(DDR2)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-10-11 09:12:12 | 显示全部楼层
本帖最后由 lcytms 于 2017-10-11 09:23 编辑

本文将以PXIe-7966R为例,手把手教大家使用DRAM Bank。
  
FPGA存储器项使用DRAM 
  
步骤一:将FPGA终端添加到项目中
  配置之前,先将FPGA终端添加到项目中,在FPGA终端的属性对话框中选择“Mode” LabVIEW FPGA Memories,如下图。

DRAM配置Mode

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-10-11 09:14:22 | 显示全部楼层
本帖最后由 lcytms 于 2017-10-11 09:24 编辑

步骤二:配置为LabVIEW FPGA Memory
  在LabVIEW FPGA中Memory的主要特点是可以用来按地址存储索引数据,与FIFO的先进先出而言,各有自己的适用范围。
  把DRAM配置成Memory之后,可以在FPGA终端上面,“右键”创建Memory,并在弹出的对话框中的“Implementation”中选择“DRAM”;
        在DRAM bank中可以选择是Bank0还是Bank1,对于7966R而言,每个Bank有256M。

对参数进行配置

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-10-11 09:16:36 | 显示全部楼层
本帖最后由 lcytms 于 2017-10-11 09:26 编辑

步骤三:设置Memory参数
  1)设置需要的点数
                  系统会依据设置的值计算出一个实际分配的元素数目,同时可以关注剩余的DRAM大小有多少。
  2)设置Data type
                  可以设置Memory的数据类型。数据类型可以选择的各种常用的数据类型,同时也可以设置为“Customer Control”,特别要注意的是“数据的最大位宽”。

Data type参数设置

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-10-11 09:17:47 | 显示全部楼层
本帖最后由 lcytms 于 2017-10-11 09:27 编辑

        DRAM中每个访问单元是独立的,设置的元素个数相同,数据类型不同的时候,配置的Memory在DRAM Bank中占用的空间是相同的。
        所以,为了能够最大限度的使用DRAM中的空间,可以在这里设置Customer Control,然后选择一个含有两个U64元素的簇(2个U64刚好占用128位带宽),如下图所示。

配置DRAM Bank的数据类型

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-10-11 09:29:15 | 显示全部楼层
步骤四:访问DRAM

        Memory中的数据访问是依据地址访问的,具体读写方式可以参考帮助文档。
        由于Memory中访问是依据地址来操作的,因此,在程序中可以将一段地址以“环形”方式反复读写,这个也是在缓存数据时候经常用到的。
        比如:在FPGA中实现“参考触发”方式的数据采集,就需要缓存一部分数据,并以环形FIFO的方式进行读写,保证缓冲区中的数据是最新的一段。
  
        使用DRAM进行编程,以下为示例,提供参考:分别是环形方式写数据到FIFO中和环形方式读取FIFO中的数据。

读取DRAM数据

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-10-11 09:44:07 | 显示全部楼层
向DRAM写入数据

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-10-11 09:45:44 | 显示全部楼层
或者也可以在范例查找器中直接搜索,参考范例如下

DRAM Memory使用范例

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2017-10-11 09:51:22 | 显示全部楼层
参考链接:
          在NIFlexRIO中使用DRAM
                  http://www.ni.com/white-paper/14571/zhs/
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|集成电路技术分享 ( 京ICP备20003123号-1 )

GMT+8, 2024-4-27 12:23 , Processed in 0.071527 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表