fpga内嵌的块ram及其在fft算法中的应用5176vs9q.docVIP

fpga内嵌的块ram及其在fft算法中的应用5176vs9q.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
fpga内嵌的块ram及其在fft算法中的应用5176vs9q

FPGA内嵌的块RAM及其在FFT算法中的应用 引言 在现代逻辑设计中,FPGA占有重要的地位,不仅因为具有强大的逻辑功能和高速的处理速度,同时因为其内部嵌有大量的可配置的块RAM[1],使其得到了广泛地应用,例如FFT算法的实现等。FFT算法的实现有多种方案[2],比如采用单片机或DSP芯片实现,但是因需要外接存储器而使其运算速度受到了限制[3`4],而采用FPGA实现FFT算法,避免了使用外部存储器,加快了数据的读取和存储速度,进而可以提高FFT的运算速度[5`6]。 随着设计的日益复杂,RAM的需求量也越来越大,不同器件商生产的不同FPGA器件族内嵌块RAM的结构又有一些不同,在Altera公司的FPGA内部嵌入的RAM块有三种[7],分别是M512RAM(512bit RAM)、M4K(4Kbit)和M-RAM(512Kbit RAM),其中M512主要用于大量分散的数据存储、浅FIFO、移位寄存器、时钟域隔离等功能。M4K通常用作芯片内部数据流的缓存、ATM信元的处理、信元FIFO接口以及CPU的程序存储器等。而M-RAM主要用于在大数据包的缓存(如以太网帧、IP包等大到几K字节的数据包),视频图像帧的缓存,回波抵消(Echo Canceller)数据存储等等。本文将详细介绍内嵌RAM块的不同配置模式,及其实现的FIFO存储器在FFT算法中的应用。 FPGA内嵌块RAM RAM几乎是可编程逻辑器件中除了LE之外用得最多的功能块了。通常,FPGA内嵌块RAM可以配置成以下几种模式:单端口RAM、简单双口RAM、真正双口RAM、移位寄存器、ROM和FIFO等模式[8]。而在Altera公司的FPGA中内嵌块RAM以M4K最多,本文就以M4K块RAM为例,介绍这几种模块的实现方式及其在FFT算法中的应用。 2.1 单端口RAM模式 如图1所示为单端口RAM的模型,其中两个时钟inclock和outclock可以使用同一个时钟源,inclocken和outclocken是两个时钟使能信号,inaclr和outaclr是异步清零信号,可以分别对输入级和输出级寄存器清零。 图1 单端口RAM模型 单端口RAM模式支持非同时的读写操作。同时每个M4K RAM块可以被分为两部分,分别实现两个独立的单端口RAM。当器件内部存储单元不足时,QuartusII软件就会自动的将M4K RAM配置成两个相互独立的单端口RAM。需要注意的是,当要实现两个独立的单端口RAM模块时,首先要保证每个模块所占用的存储空间小于M4K RAM存储空间的1/2。 在单端口RAM配置中,输出只在read-during-write模式有效,即只有在写操作有效时,写入到RAM的数据才能被读出。当输出寄存器被旁路时,新数据在其被写入时的时钟的上升沿有效。 2.2 简单双端口RAM模式 如图2所示为简单双端口RAM模型,图中左边的端口只写,右边的端口只读,因此这种RAM也被称为伪双端口RAM(Pseudo Dual Port RAM)。这种简单双端口RAM模式也支持同时的读写操作。 图2 简单双端口RAM模型 M4K RAM块支持不同的端口宽度设置,允许读端口宽度与写端口宽度不同。这一特性有着广泛地应用,例如:不同总线宽度的并串转换器等。下表1显示了M4K RAM支持的混合端口配置情况。 表1 简单双端口RAM模型的混合端口配置 在简单双端口RAM模式中,M4K RAM块具有一个写使能信号wren和一个读使能信号rden,当rden为高电平时,读操作有效。当读使能信号无效时,当前数据被保存在输出端口。 当读操作和写操作同时对同一个地址单元时,简单双口RAM的输出或者是不确定值,或者是存储在此地址单元的原来的数据(这个可以在QuartusII软件中进行设计)。 2.3 真正双端口RAM模式 如图3所示为真正双端口RAM模式,图中左边的端口A和右边的端口B都支持读写操作,wren信号为高为写操作,低为读操作。 同时它支持两个端口读写操作的任何组合:两个同时读操作、两个端口同时写操作或者在两个不同的时钟下一个端口执行写操作,另一个端口执行读操作。 图3 真正双端口RAM模式 真正双端口RAM模式在很多应用中可以增加存储带宽,例如,在包含Altera Nios嵌入式处理器和DMA控制器系统中,采用真正双端口RAM模式会很方便,相反,如果在这样的一个系统中,采用简单双端口RAM模式,当处理器和DMA控制器同时访问RAM时,就会出现问题。真正双端口RAM模式支持处理器和DMA控制器同时,这个特性避免了采用仲裁的麻烦,同时极大的提高了系统的带宽。 在由单个M4K RAM块实现的真正双端口RAM模式中,能达到的最宽的数据位为256*16-bit或者256*18-bit

文档评论(0)

beoes + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档