| 异步FIFO设计 |
| 类别:模拟技术 |
| 作者:QuickLogic公司 仲 巡
来源:《电子产品世界》
摘要:本文介绍如何应用美国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。
|
- 模拟传感器系统的抗..
- 2007-12-24
- 开关电容滤波器的“..
- 2007-11-5
- DH4~20mA模..
- 2007-10-15
- 智能中药煲设计
- 2007-8-9
- 网络开关盒电路
- 2007-7-29
- 设计通用的Ultr..
- 2007-8-7
- 信号隔离技术
- 2007-8-9
- 常用的抗扰度试验标准
- 2007-7-29
- 雷电与防雷误区
- 2007-7-29
- 通信系统过电压产生..
- 2007-7-29
- 多通道数字模拟混合..
- 2007-7-29
- 共模和差模信号及其..
- 2007-7-29
- 由TWH9221组..
- 2007-7-29
- 混合信号系统设计中..
- 2007-7-29
- 电子电路设计中EM..
- 2007-8-9



