当前位置:首页 > EDA > 电子设计自动化
[导读]首先介绍异步FIFO的概念、应用及其结构,然后分析实现异步FIFO的难点问题及其解决办法;在传统设计的基础上提出一种新颖的电路结构并对其进行综合仿真和FPGA实现。

   摘要:首先介绍异步FIFO的概念、应用及其结构,然后分析实现异步FIFO的难点问题及其解决办法;在传统设计的基础上提出一种新颖的电路结构并对其进行综合仿真和FPGA实现。

    关键词:异步电路 FIFO 亚稳态 格雷码

1 异步FIFO介绍

在现代的集成电路芯片中,随着设计规模的不断扩大,一个系统中往往含有数个时钟。多时钟域带来的一个问题就是,如何设计异步时钟之间的接口电路。异步FIFO(First In First Out)是解决这个问题一种简便、快捷的解决方案。使用异步FIFO可以在两个不同时钟系统之间快速而方便地传输实时数据。在网络接口、图像处理等方面,异步FIFO得到了广泛的应用。

异步FIFO是一种先进先出的电路,使用在需要产时数据接口的部分,用来存储、缓冲在两个异步时钟之间的数据传输。在异步电路中,由于时钟之间周期和相位完全独立,因而数据的丢失概率不为零。如何设计一个高可靠性、高速的异步FIFO电路便成为一个难点。本文介绍解决这一问题的一种方法。

    图1是异步FIFO的结构框图。

由图1可以看出:整个系统分为两个完全独立的时钟域——读时钟域和写时间域;FIFO的存储介质为一块双端口RAM,可以同时进行读写操作。在写时钟域部分,由写地址产生逻辑产生写控制信号和写地址;读时钟部分由读地址产生逻辑产生读控制信号和读地址。在空/满标志产生部分,由读写地址相互比较产生空/满标志。

2 异步FIFO的设计难点

设计异步FIFO有两个难点:一是如何同步异步信号,使触发器不产生亚稳态;二是如何正确地设计空、满以及几乎满等信号的控制电路。

下面阐述解决问题的具体方法。

2.1 亚稳态问题的解决

在数字集成电路中,触发器要满足setup/hold的时间要求。当一个信号被寄存器锁存时,如果信号和时钟之间不满足这个要求,Q端的值是不确定的,并且在未知的时刻会固定到高电平或低电平。这个过程称为亚稳态(Metastability)。图2所示为异步时钟和亚稳态,图中clka和clkb为异步时钟。

    亚稳态必定会发生在异步FIFO中。图中在异步FIFO中,电路外部的输入和内部的时钟之间是毫无时间关系的,因此setup/hold冲突是必然的;同在电路内部的两个没有关系的时钟域之间的信号传递,也必须会导致setup/hold冲突。

虽然亚稳态是不可避免的,但是,下面的设计改进可以将其发生的概率降低到一个可以接受的程度。

①对写地址/读地址采用格雷码。由实践可知,同步多个异步输入信号出现亚稳态的概率远远大于同步一个异步信号的概率。对多个触发器的输出所组成的写地址/读地址可以采用格雷码。由于格雷码每次只变化一位,采用格雷码可以有效地减少亚稳态的产生。

    ②采用触发器来同步异步输入信号,如图3中的两极触发器可以将出现亚稳态的几率降低到一个很小的程度。但是,正如图3所示,这种方法同时带来了对输入信号的一级延时,需要在设计时钟的时候加以注意。

2.2 空/满标志的产生

空/满标志的产生FIFO的核心部分。如何正确设计此部分的逻辑,直接影响到FIFO的性能。

空/满标志产生的原则是:写满不溢出,读空不多读。即无论在什么进修,都不应出现读写地址同时对一个存储器地址操作的情况。在读写地址相等或相差一个或多个地址的时候,满标志应该有效,表示此时FIFO已满,外部电路应对FIFO发数据。在满信号有效时写数据,应根据设计的要求,或保持、或抛弃重发。同理,空标志的产生也是如此,即:

空标志<=(|写地址-读地址|<=预定值)AND(写地址超前读地址)

满标志<=(|写地址-读地址|<=预定值)AND(读地址超前写地址)

    最直接的做法是,采用读写地址相比较来产生空满标志。如图4所示,当读写地址的差值等于一个预设值的时候,空/满信号被置位。这种实现方法逻辑简单,但它是减法器形成的一个比较大的组合逻辑,因而限制了FIFO的速度。所以,一般只采用相等不相等的比较逻辑,避免使用减法器。

图5是另外一种常用的设计,比较器只对读写地址比较是否相等。在读写地址相等的时候有两种情况:满或者空。所以,附加了一个并行的区间判断逻辑来指示是空还是满。这个区间判断逻辑将整个地址空间分为几个部分,以指示读写地址的相对位置。这种做法提高了整个电路的速度,但是也有其缺点。主要是直接采用读写地址等于不等于的比较逻辑来进行空/满标志的判断,可以带来误判。

3 新颖的FIF0空/满标志控制逻辑

3.1 对读写地址的分析

由以上对FIFO的分析可以看出,由地址直接相减和将地址相互比较产生空/满标志都不可取。如何简单地进行直接比较,又不提高逻辑的复杂程度呢?对地址加延时可以做到这一点。设读地址为Rd_bin_addr,用读地址Rd_addr产生读地址的格雷码Rd_next_gray_addr,将Rd_next_gray_addr延一拍得到Rd_gray_addr,再将Rd_gray_addr延一拍得到Rd_last_gray_addr。在绝对时间上,Rd_next_gray_addr、Rd_gray_addr、Rd_last_gray_addr这些地址先后关系,从大到小排列,并且相差一个地址,如图6所示。

    写地址的格雷码的产生也与此类似,即:Wt_next_gray_addr、Wt_gray_addr、Wt_last_gray_addr。利用这6个格雷码进行比较,同时加上读写使能,就能方便而灵活地产生空/满标志。

以空标志Empty的产生为例,当读写格雷码地址相等或者FIFO内还剩下一个深度的字,并且正在不空的情况下执行读操作,这时Emptr标志应该置为有效(高电平有效)。

即EMPTY<=(Rd_gray_addr=Wt_gray_addr)and(Read_enable=1)或EMPTY<=(Rd_next_gray_addr=Wt_gray_addr)and(Read_enable=1)

同理可类推满标志的产生逻辑。

3.2 基于延时格雷码的FIFO标志产生逻辑

图7是使用上述思想设计的地址产生和标志产生的逻辑。首先,在地址产生部分,将产生的格雷码地址加一级延时,利用其前一级地址与当前的读地址作比较。其次,在空/满标志有效的时候,采用了内部保护机制,不使读/写地址进一步增加而出现读写地址共同对一个存储单元操作的现象。

3.3 仿真信号波形

利用图7电路设计的思想构造了一个256×8的FIFO,用MODELSIM进行仿真。图8为系统中主要信号对读空情况的仿真波形。

图6 经过延时后格雷码之间的关系

    图8中,WDATA为写数据,RDATA为读数据,WCLK为写时钟,RCLK为读时钟,REMPTY为空信号,AEMPTY的几乎空信号,RPTR为读地址WPTR为写地址,RGNEXT为下一位读地址格雷码,RBIN读地址二进制,RBNEXT为下一位读地址的二进制码。

由图8可以看出,由于读时钟高于写时钟,读地址逐渐赶上写地址,其中由AEMPTY信号指示读地址和写地址的接近程度。当这个信号足够长而被触发器捕捉到时,真正的空信号REMPTY有效。

4 电路优点的分析

由图7可见,该电路最大的瓶颈为二进制到格雷码和比较器的延时之和。由于这两个组合逻辑的延时都很小,因此该电路的速度很高。经测试,在Xilinx的FPGA中,时钟频率可达140MHz。另外,由于将异步的满信号加了一级锁存,从而输出了可靠而稳定的标志。

图8 读空情况的仿真波形图

5 总结

在实际工作中,分别用图4、图5与图7中所示的逻辑实现了一个256×8的FIFO。综合工具为SYNPLIFY7.0,由Foundation Series 3.3i布局布线后烧入Xilinx公司的WirtexEV100ECS144。三者的性能指标比较见表1。

表1 三种不同设计的比较

逻辑设计方式 时钟频率/MHz 有效结果输出频率/MHz slice数目/个
图4所示逻辑 160 78.9 17
图5所示逻辑 160 92 15
图7所示逻辑 160 140 13

由表1可知,图7所示的异步FIFO的电路速度高,面积小,从而降低了功耗,提高了系统的稳定性

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭