FPGA存储器项使用DRAM的方法技术解析

FPGA/ASIC技术

206人已加入

描述

FPGA中的存储块DRAM

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

DRAM可以用来缓存大批量的数据,而且速度可以非常快。针对一些特殊应用,比如:瞬时带宽非常高,而且有要保存原始数据的时候,就可以用DRAM做一个大的FIFO缓冲。

DRAM的大小每块板卡可能不同,一般在官网中对应板卡的说明中都会标明DRAM的大小(如果有DRAM的话)。比如,PXIe-7966R就有512M的DRAM空间。
 

FPGA


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

 

不同的板卡板载内存大小不同,同时DDR系列也可能不同,7976R拥有高达2GB的板载缓存,且为DDR3,容量更大且速度更快。
 

FPGA


PXIe-7976R拥有2GB的板载内存(DDR3)

 

本文将以PXIe-7966R为例,手把手教大家使用DRAM Bank。

FPGA存储器项使用DRAM

步骤一:将FPGA终端添加到项目中
配置之前,先将FPGA终端添加到项目中,在FPGA终端的属性对话框中选择“Mode” LabVIEW FPGA Memories,如下图。

FPGA


DRAM配置Mode

 

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

FPGA


对参数进行配置

 

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

FPGA


Data type参数设置

 

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

FPGA


配置DRAM Bank的数据类型

 

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

使用DRAM进行编程,以下为示例,提供参考:分别是环形方式写数据到FIFO中和环形方式读取FIFO中的数据。

FPGA


读取DRAM数据

FPGA


向DRAM写入数据

 

或者也可以在范例查找器中直接搜索,参考范例如下

FPGA


DRAM Memory使用范例

 

参考链接
在NIFlexRIO中使用DRAM

访问DRAM(FPGA模块)

高效使用DRAM和NI CompactRIO

 

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分