在NI FlexRIO中使用DRAM

FPGA/ASIC技术

206人已加入

描述

许多高性能仪器使用动态随机存取存储器(DRAM)作为本地存储器,DRAM是一种高密度、高带宽的存储器。选择具有DRAM的NI FlexRIO FPGA模块, 您便可自由地将此类本地存储纳入您的应用。典型的DRAM采用从为基于记录的采集/生成提供的简单本地存储到用于通道仿真应用的长延迟链。本文将探讨NI FlexRIO中DRAM的实现,学习如何在NI LabVIEW FPGA模块使用强大的DRAM抽象和接口。

1. 使用DRAM
本地LabVIEW FPGA接口通过内存连接DRAM。该接口简化了与模块上物理DRAM通信、DRAM资源的竞争请求仲裁以及内存分段(以最大化使用灵活性)的底层复杂性。因此,该接口可帮助用户轻松地读写DRAM。

DRAM内存项可在全局项目视图中以与块内存或查询表相同的方式创建。如要创建DRAM内存项,请右击您希望为其创建新内存项的目标,然后选择“新建»内存”。接着选择“DRAM”。每个内存项对应一个DRAM库(bank),如果没有其他内存项分配给选定的DRAM库(bank),该内存项可以覆盖整个库(bank)。

NI

 

通过内存项,您可以将完整的DRAM空间分割成多个小内存块,这样每个小内存块可以通过LabVIEW FPGA代码的不同部分进行独立访问。 LabVIEW创建仲裁代码,使所有对应接口可均等地访问DRAM。下图是LabVIEW生成的逻辑,提供了特定DRAM库的访问。

NI

 

2. 写入方法
下图中的写入方法非常直接明了。写入时需要指定一个地址以便输入数据。当Input Valid的输入为真时,写入命令便会进入接口。Ready for Input端口指示接口是否准备就绪,如果端口的值为假,则数据将被忽略。为了避免信息损失,只有在确保Ready for Input的值为真时才能将数据添加到写入方法中。

NI

3. 读取方法
内存读取接口采用两种方法:请求数据和检索数据。第一种方法—请求数据首先接收目标数据的地址,然后通过内存控制器请求该地址上的数据。但请记住DRAM接受仲裁和非确定性事件(如DRAM刷新)请求后会存在较长的延迟。因此,数据并不是立即可用的。相反,所有请求根据接收的顺序排队和进行处理。经过一定时间后,检索数据方法显示接下来要请求的数据,并确定Output Valid的输出值以指示该数据是否可用。只有当Ready for Output端口的值设置为真时,数据才会显示,这向内存接口传递的信息是:将使用该数据的逻辑已经准备好接收数据。

NI

4. 其他资源

了解在NI FlexRIO中高效使用DRAM的三个步骤,优化NI FlexRIO的DRAM访问

了解更多关于NI FlexRIO

了解NI射频和无线测试产品与解决方案

了解NI自动化测试平台资源

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

全部0条评论

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

×
20
完善资料,
赚取积分