双口RAM,值得研究

摘要:
在FPGA设计过程中,使用双端口RAM也是提高效率的一种方法。简单双端口RAM只有一个写端口和一个读端口。无论是简单双端口还是真正的双端口RAM,当没有读操作时,应将读使能rden信号拉至低电平以节省功耗。无论双端口RAM如何,读取顺序图都是相同的。真正的双端口RAM为设计带来了很多便利。调用真正的双端口RAM,如图所示。使用好双端口RAM真的很节省时间。

双口RAM,值得研究第1张


在FPGA设计过程中,使用好双口RAM,也是提高效率的一种方法。

官方将双口RAM分为简单双口RAM和真双口RAM。

双口RAM,值得研究第2张

简单双口RAM只有一个写端口,一个读端口。

双口RAM,值得研究第3张

真双口RAM分别有两个写端口和两个读端口。

无论是简单双口RAM还是真双口RAM,在没有读操作的情况下,应将读使能rden信号拉成低电平,节省功耗。

在两种情况下,都应当避免read-during-write,虽然可在软件中进行设置,但是,作为设计者,应当尽量避免此种情况。

对于真双口RAM,还应当避免两个读端口或者两个写端口同时操作同一个地址,RAM中并没有此种冲突解决电路,设计者应该避免这种冲突。

无论是那种双口RAM,读时序图是相同的。

双口RAM,值得研究第4张

当读使能有效时,数据会在时钟下一个上升沿从Q端输出。

真双口RAM给设计带来很多便利。在高速存储中,需要对连续的数据同时处理,使用简单双口RAM只能读取一个数据,而使用真双口RAM可以同时读取两个数据,这样明显提高读取速度以及处理速度。

双口RAM,值得研究第5张

调用真双口RAM,如图设置。

双口RAM,值得研究第6张

这里可以设置时钟方案,而读使能rden并非必须信号。当使用rden信号时,此信号高电平有效,当不使用rden信号时,给定地址,下一个脉冲数据从q端口送出。

双口RAM,值得研究第7张

这里的设置非常重要,当选中read output ports时,q端会增加一级寄存器。虽然这样增加流水线能够提高电路的速度,但同时从读使能有效到最终数据有效将会多延迟一个时钟周期。在设计中要格外注意。根据设计自行设置。

双口RAM,值得研究第8张

双口RAM,值得研究第9张

上面两张图是指定对同一地址操作时的输出。作为设计者,应尽量在自己的设计中避免这种情况发生。

真双口RAM用好了是非常省时间的。之前我们文章中提到硬件FFT的实现,在实现过程中,使用基2的设计方案,需要同时读取两个RAM数据,这种情况下可以使用真双口RAM提高效率。


版权所有权归卿萃科技 杭州FPGA事业部,转载请注明出处

作者:杭州卿萃科技ALIFPGA

原文地址:杭州卿萃科技FPGA极客空间 微信公众号


双口RAM,值得研究第10张

扫描二维码关注杭州卿萃科技FPGA极客空间


免责声明:文章转载自《双口RAM,值得研究》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【Linux知识积累】 CentOS开启Kdump的方法在.xml文件中模糊查询的常用的3种方法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Linux-3.14.12内存管理笔记【建立内核页表(1)】

前面已经分析过了Intel的内存映射和linux的基本使用情况,已知head_32.S仅是建立临时页表,内核还是要建立内核页表,做到全面映射的。下面就基于RAM大于896MB,而小于4GB ,切CONFIG_HIGHMEM配置了高端内存的环境情况进行分析。 建立内核页表前奏,了解两个很关键的变量: max_pfn:最大物理内存页面帧号; max_low_...

单片机中的ROM,RAM和FLASH的作用

ROM,RAM和FLASH的区别,下面主要是具体到他们在单片机中的作用。 一、ROM,RAM和FLASH在单片中的作用ROM——存储固化程序的(存放指令代码和一些固定数值,程序运行后不可改动)c文件及h文件中所有代码、全局变量、局部变量、’const’限定符定义的常量数据、startup.asm文件中的代码(类似ARM中的bootloader或者X86中的...

FPGA入门1

FPGA入门知识介绍    近几年来,由于现场可编程门阵列(FPGA)的使用非常灵活,又可以无限次的编程,已受到越来越多的电子编程者的喜爱,很多朋友都想学习一些FPGA入门知识准备进行这个行业,现在关于FPGA入门知识的书籍、论坛、教程等种类繁多各式各样。下面笔者也通过搜寻一些关于FPGA入门知识的资料供大家学习和参考。 FPGA入门知识首先要...

Android 内存管理介绍

极力推荐Android 开发大总结文章:欢迎收藏程序员Android 力荐 ,Android 开发者需要的必备技能 Android Runtime(ART)和Dalvik虚拟机使用 分页 和 内存映射 来管理内存。 这意味着应用程序修改的任何内存(无论是通过分配新对象通过映射页面)都将保留在RAM中,并且不能被分页。 应用程序释放内存的唯一方法是释...

android SDK- 使用 AVD Manager.exe 创建虚拟机遇到报错 emulator

再用 AVD Manager 创建虚拟机,启动的时候总是弹出报错 :emulator - arm.exe 已停止工作,见图 我看了别人都能正常启动,为啥我不行,还以为是我的sdk有问题,去下载了几个替换感觉都不好 于是百度找方法-- 大概试了一下方法: 1.更新电脑显卡驱动 2.更改电脑分辨率 (设定的分辨率不能大于电脑分辨率) 3.修改RAM,我本来没...

计算机基础第三章:寄存器&内存(Registers&RAM)

寄存器&内存(Registers&RAM) 前言 前面学习了逻辑门和ALU,想要制作一个“CPU”我们还需要学习内存,因为CPU所运算 数据的读写都离不开内存。 一.内存单位 学习内存首先我们要了解存储单位 1TB(太字节)=1024GB(千兆字节) 1GB=1024MB(兆字节) 1MB=1024KB(千字节) 1KB=1024byte(...