综合资讯 在线阅读 原文阅读 在线商城 下载专区 DATASHEET 技术论坛 商务频道

嵌入式系统  单片机  D S P  EDA/PLD  接口电路  存储技术  显示光电  电源技术
传感/控制  模拟技术  通信网络  无线通信  电测仪表  消费电子  汽车电子

所在的位置:首页技术文章通信网络正文
 
异步FIFO设计
发布日期:2005-12-21 作者:仲 巡 来源:电子产品世界

   摘要:本文介绍如何应用美国QUICKLOGIC公司的QUICKRAM器件设计高速、高可靠异步FIFO(Asynchronous FIFO)。

    关键词:异步FIFO

    异步FIFO广泛地用于计算机网络工业中进行非同步数据传送,这里的非同步指按一种速率发送而按另一速率接收。因此异步FIFO有两个不同的时钟,一个为读同步时钟,一个为写同步时钟。

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

功能描述

    典型的异步FIFO(AsynFIFO)都是由异步双端口RAM和控制逻辑构成,控制逻辑包含读指针和写指针。

    当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。

比较器

    参考设计中的比较器为5位,采用纯原理图方法输入。当用户修改了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

结论

    采用QuickRAM器件实现异步FIFO方便灵活,并且速度快,成本低,还可以实现非常规深度和宽度的专用FIFO。


 (全文结束)

信息发布:   转引自: 【 】 【打印】 【关闭
 相 关 文 章
谢谢,现在还没有相关信息...
关于我们 ┋ 友情链接


深圳市福田区海滨广场恒福花园恒华阁11F
电话:0755-88305872 传真:0755-88305880
Copyright©2005-2007 无忧电子开发网版权所有

粤ICP备05064233号