一种读写深度可配置的异步FIFO设计
2013-09-21闫霄颖张德学王维克吴萌萌
单片机与嵌入式系统应用 2013年1期
闫霄颖,张德学,王维克,吴萌萌
(山东科技大学 信息科学与工程学院,青岛 266590)
引 言
随着设计复杂度的不断提高,现代电子信息设计中,单一时钟驱动已无法满足设计与应用的需求。基于多时钟驱动的设计已经越来越普遍,在异步时钟域的设计中,跨时钟域数据信号传输是必须考虑的一个问题。控制信号一般使用握手协议来实现异步传输,对于异步时钟域大数据量的传输则经常使用异步FIFO来实现。
基于FIFO进行跨时钟域数据传输的具体设计,主要借助于FIFO的空/满状态信号来控制对FIFO的读写操作。在部分使用处理器检测空/满状态标志的设计中,当FIFO已经空或满时,处理器会出现来不及响应的情况,从而造成数据的溢出或者数据流的断流现象。这无法满足一些设计的严格要求,所以就有了半空/半满标志的使用。但针对一些大容量的FIFO,简单使用半空/半满标志进行FIFO的读写控制时,因为具体应用的不同,会有部分FIFO的存储资源没有使用,造成硬件资源的浪费。
针对这一现状,本文提出一种读写深度可配置的FIFO设计。通过对寄存器的配置,来设定产生有效FIFO读写控制信号时FIFO的深度。在提高硬件资源利用率的同时,还可以通过寄存器的配置,使设计满足于不同的具体应用。
1 异步FIFO的工作原理简述
通用异步FIFO的原理结构图如图1所示。由图中可以看出,异步FIFO由4部分组成:存储器模块、写地址逻辑模块、读地址逻辑模块、同步模块。其中,写地址逻辑模块和读地址逻辑模块是两个相互独立的时钟域模块。……
登录APP查看全文
