异步FIFO的设计与实现

出处:电子产品世界 发布于:2011-06-23 18:17:26

    FIFO是英文First In First Out 的缩写,是一种先进先出的数据缓存器,他与普通存储器的区别是没有外部读写地址线,这样使用起来非常简单,但缺点就是只能顺序写入数据,顺序的读出数据,其数据地址由内部读写指针自动加1完成,不能像普通存储器那样可以由地址线决定读取或写入某个指定的地址。

  当数据从一个时钟驱动的模块进入另一个时钟驱动的模块时,未读走数据有可能被新数据覆盖,因而导致数据丢失。为了解决这个问题,就必须增加一些控制信号和状态信号,控制信号如pusb、pop,状态信号。

  功能描述

  当FIFO中有数据而非空时,POP信号(同步于读时钟)用于控制数据的读出,所读数据来自读指针所指的(AUAL PORT RAM)中的存储单元,并且读指针加一。当读指针赶上写指针时,FIFO为空并且用empty信号(同步于读时钟)来指示这种情况。

  当FIFO中有空间而非满时,PUSH信号(同步于写时钟)用于控制数据的写入,所写数据写入写指针所指的双端口RAM中的存储单元,并且写指针加一。当写指针赶上读指针时,FIFO为满足并且用full信号(同步于写时钟)来指示这种情况。

  当FIFO中只剩不足三个数据时,almost-empty有效(同步于读时钟)。类似地,当FIFO中还有不足四个空位时almost-full将有效(同步于写时钟)。用户可根据需要修改读、写侧的计数器初始值,从而确定所需要的almost-empty和almost-full提前量。例如当计数器初始化为7时,almost-empty和almost-full将分别比empty和full提前7个位置。读侧和写侧的状态机将根据内部比较器的输出来确定这些状态信号。每侧的状态机都有两上D触发器,构成双同步,这样的设计可大幅度提高系统的可靠性,使得平均元故障时间(MTBF)可大于100年。

  结构

  图1为AsynFIFO的顶层设计框图(Quicklogic提供全部设计文件),并给出了各相模块的设计文件名。图中各模块可根据要求修改,以增加FIFO的宽度和深度。请注意,本文图中没有给出读侧和写侧的状态机。

  RAM块

  图1中用了一个64×32的RAM块。该RAM块由Verilog代码定义,该代码由SpDE内的RAM/ROM/FIFO向导自动产生。在向导中用户可自由指定所需的宽度和深度,向导自动产生所需的Verilog/VHDL代码和原理图中所需的symbol。

  比较器

  当用户修改了RAM块的深度时,比较器的宽度也要与之对应。例如当FIFO深度为256时,地址须为8位,因而是比较器也应为8位。

  格雷码计数器

  为了提高MTFB,设计中采用了格雷码计数器,该计数器为5位,采用Verilog/VHDL语言实现。它们可以被改成6位、7位、8位、9位,以对应深度为64、128、256、512的FIFO。

  锁存器

  图中的锁存器为verilog/VHDL语言所写,读侧有三个,写侧有一个,用户可自由地修改其宽度。它们用于状态、控制信号的产生。

  性能

  RARTS:QuickRAM family

  AREA:48 buffer cells

  Speed:write colck(WCLK)=136MHz,read clock(RCLK)=129MHz

  结论

  本文主要研究了用FPGA芯片实现异步FIFO的一种方法。详细阐述了空,满标志信号的产生方法。按照以上思想所设计的异步FIFO已经在实际电路中得到了应用。实践证明他可以解决大多数异步FIFO电路常见的错误。同时增加了系统的可靠性和应用灵活性。


  
关键词:异步FIFO的设计与实现

版权与免责声明

凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。

本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。

如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

OEM清单文件: OEM清单文件
*公司名:
*联系人:
*手机号码:
QQ:
有效期:

扫码下载APP,
一键连接广大的电子世界。

在线人工客服

买家服务:
卖家服务:
技术客服:

0571-85317607

网站技术支持

13606545031

客服在线时间周一至周五
9:00-17:30

关注官方微信号,
第一时间获取资讯。

建议反馈

联系人:

联系方式:

按住滑块,拖拽到最右边
>>
感谢您向阿库提出的宝贵意见,您的参与是维库提升服务的动力!意见一经采纳,将有感恩红包奉上哦!