- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于多时钟域异步FIFO设计
基于多时钟域异步FIFO设计
摘要:在大规模集成电路设计中,一个系统包含了很多不相关的时钟信号,当其目标域时钟与源域时钟不同时,如何在这些不同域之间传递数据成为了一个重要问题。为了解决这个问题,我们可以用一种异步FIFO(先进先出)存储器来实现。本文介绍了一种利用格雷码指针实现在多时钟域传递数据的FIFO设计。
关键词:FIFO,多时钟域,异步,格雷码,亚稳态,同步装置
1、引言
随着计算机、多媒体和数据通信技术的高速发展,数字图像、语音等数据传输技术近年来得到了极大的重视和长足的发展,并得到了广泛的应用。如何保障这些语音、图像等数据传输的准确性、及时性?如何高效率、高速度地传输这些数据?这些都是当今信息领域的科研人员所必须解决的问题。而往往在这些数据传输系统中,又会遇到不同系统接口间数据传输的问题。通常在两个相连接的不同电路系统之间,因为每个系统的数据传输速度不同,在系统的接口部分就会出现数据输入速度和输出速度不同,也就是会发生数据传输速率不匹配的问题。这种情况往往会让传输的数据产生复写或者丢失,降低数据的传输速率,同时也因为数据复写、丢失和无效数据的读入,将会产生数据出错,因此需要在不同系统的接口处设计数据传输单元来实现数据的高速高效传输。在现代的系统设计中,为了提高系统的性能,设计者对数据的传输率、数据的传输量,对系统各部分之间的接口部分不同的数据输入和接收传输率的匹配有越来越高的要求,而 FIFO存储器以其合理的价格、使用的方便灵活性以及上述的对速度匹配的应用而成为解决这类问题的理想途径,因此FIFO存储器在计算机、多媒体和数据通信领域都有着广泛的应用,因此对 FIFO 的研究与设计应用具有理论上和实际应用上的双重意义。
2、 FIFO的功能描述
FIFO 是数据传输系统中极其重要的一环,特别是在两个处在不同时钟域的系统接口部分,FIFO 的合理设计,不但能使接口处数据传输的输入输出速率进行有效的匹配,不使数据发生复写、丢失和读入无效数据的情况,而且还会有效地提高系统中数据的传输效率,FIFO 存储器主要分为基于移位寄存器型和基于 RAM 型,而 RAM 型又有单口 RAM和双口 RAM 之分,目前来说,用的较为广泛的是基于双端口 RAM的 FIFO。从时钟角度来考虑,因为时钟的同步和异步之分,FIFO 又可分为同步 FIFO和异步FIFO。更多情况下,FIFO 的读写时钟为异步的。也就是我们更多的时候要将FIFO设计为异步,异步FIFO由存储器块和控制逻辑构成,控制逻辑包括读写指针,读写指针分别位于不同的时钟域中。当FIFO中有数据而非空时,read信号用来控制读数据,所读数据来自读指针所指的存储单元,并且读指针加一,当读指针追上写指针时FIFO为空并产生一个empty信号,empty同步于读时钟,当FIFO中有空间而非满时,write信号用来控制写数据,所写数据写向写指针所指的存储单元,并写指针加一。当写指针追上读指针时FIFO为满并产生一个full信号,full信号同步于写时钟。图1为异步FIFO操作的逻辑方框图。
图1 异步FIFO操作的逻辑方框图
3、用于异步信号去亚稳定性的
同步装置
在信号传输中, 每种触发器都有时序要求。对于使用上升沿触发的触发器来说, 建立时间(Setup Time) 是在时钟上升沿到来之前, 触发器数据保持稳定的最小时间; 而保持时间(Hold Time)是在时钟上升沿到来之后, 触发器数据还应该保持的最小时间[1],在时钟上升沿前后的这个窗口内数据应该保持不变, 否则会使触发器工作在一个不确定的状态, 即亚稳态。当触发器处于亚稳态, 且处于亚稳态的时间超过了一个时钟周期时, 这种不确定的状态将会影响到下一级的触发器, 最终导致连锁反应, 从而使整个系统功能失常如图2所示。当一个信号跨越某个时钟域时, 对新时钟域的电路来说它就是一个异步信号。由于异步信号之间的时序是毫无关系的, 因此必然存在Setup Time/Hold Time 冲突。为了避免亚稳态问题, 采用如图3所示的双锁存器法,即在一个信号进入另一个时钟域前, 将该信号用两个锁存器连续锁存两次, 最后得到的采样结果就可以消除亚稳态。使用多级是因为时钟周期由于技术进步正在日益减小,使得单个触发器的亚稳定性不可能在单个周期内解决[2]。
图2 异步时钟和亚稳态现象
图3 消除亚稳态的异步输入信号同步装置
3.1 异步FIFO设计的关键问题
异步FIFO设计的关键问题主要有两个,一是如何根据FIFO读写指针信号正确判断空满标志;二是如何同步异步信号,避免出现亚稳态现象
原创力文档


文档评论(0)