手把手教你fpga存储器项使用dram-皇冠最新app版本

嵌入式 > 嵌入式开发 > 详情

手把手教你fpga存储器项使用dram

发布时间:2024-11-29 发布时间:
|

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

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

dram的大小每块板卡可能不同,一般在皇冠最新app版本官网中对应板卡的说明中都会标明dram的大小(如果有dram的话)。比如,pxie-7966r就有512m的dram空间。

/zixunimg/eepwimg/sine.ni.com/nips/cds/view/p/lang/zhs/nid/210272

pxie-7966r拥有512m的板载内存(ddr2)

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

/zixunimg/eepwimg/sine.ni.com/nips/cds/view/p/lang/zhs/nid/212692

pxie-7976r拥有2gb的板载内存(ddr3)

本文将以pxie-7966r为例,手把手教大家使用drambank。

fpga存储器项使用dram

步骤一:将fpga终端添加到项目中

配置之前,先将fpga终端添加到项目中,在fpga终端的属性对话框中选择“mode”labviewfpgamemories,如下图。

dram配置mode

步骤二:配置为labviewfpgamemory

在labviewfpga中memory的主要特点是可以用来按地址存储索引数据,与fifo的先进先出而言,各有自己的适用范围。

把dram配置成memory之后,可以在fpga终端上面,“右键”创建memory,并在弹出的对话框中的“implementation”中选择“dram”;在drambank中可以选择是bank0还是bank1,对于7966r而言,每个bank有256m。

对参数进行配置

步骤三:设置memory参数

1)设置需要的点数

系统会依据设置的值计算出一个实际分配的元素数目,同时可以关注剩余的dram大小有多少。

2)设置datatype

可以设置memory的数据类型。数据类型可以选择的各种常用的数据类型,同时也可以设置为“customercontrol”,特别要注意的是“数据的最大位宽”。

datatype参数设置

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

配置drambank的数据类型

步骤四:访问dram

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

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

读取dram数据

向dram写入数据

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

drammemory使用范例

参考链接:

在niflexrio中使用dram

/zixunimg/eepwimg/www.ni.com/white-paper/14571/zhs/

访问dram(fpga模块)

/zixunimg/eepwimg/zone.ni.com/reference/zhs-xx/help/371599n-0118/lvfpgaconcepts/fpg...

高效使用dram和nicompactrio

/zixunimg/eepwimg/zone.ni.com/reference/zhs-xx/help/373197k-0118/cserieshelp/dram_u...



『本文转载自网络,皇冠最新app版本的版权归原作者所有,如有侵权请联系删除』

热门文章 更多
华为mate x2或成[史上最难抢折叠屏":售价17999元起.首批搭载鸿蒙系统
网站地图