基于veriloghdl的异步fifo设计与实现

基于veriloghdl的异步fifo设计与实现

ID:17596015

大小:669.83 KB

页数:4页

时间:2018-09-03

基于veriloghdl的异步fifo设计与实现_第1页
基于veriloghdl的异步fifo设计与实现_第2页
基于veriloghdl的异步fifo设计与实现_第3页
基于veriloghdl的异步fifo设计与实现_第4页
资源描述:

《基于veriloghdl的异步fifo设计与实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、集成电路应用基于VerilogHDL的异步FIFO设计与实现魏芳,刘志军,马克杰(山东大学信息科学与工程学院,山东济南250100)摘要:异步FIFO是一种不同时钟域之间传递数据的常用方法。本文提出一种新颖的异步FIFO设计方案。此方案避免了使用大量的同步寄存器,减小了芯片面积并且提高了工作频率。DC综合的结果表明,用此方法设计的FIFO性能有了显著提高。关键词:多时钟域亚稳态异步FIFOVerilogHDL在现代IC设计中,特别是在模块与外围芯片的通的触发器,最终导致连锁反应,从而使整个系统功能失信设计中,多时钟域的情况不可避免。当数据从一个

2、时常。当一个信号跨越某个时钟域时,对新时钟域的电路钟域传递到另一个域,并且目标时钟域与源时钟域不相来说它就是一个异步信号。由于异步信号之间的时序是关时,这些域中的动作是不相关的,从而消除了同步操毫无关系的,因此必然存在SetupTime/HoldTime冲突。作的可能性,并使系统重复地进入亚稳定状态[1]。在有为了避免亚稳态问题,采用如图2所示的双锁存器法大量的数据需要进行跨时钟域传输且对数据传输速度[3],即在一个信号进入另一个时钟域前,将该信号用两要求比较高的场合,异步FIFO是一种简单、快捷的解决个锁存器连续锁存两次,最后得到的采样结果就

3、可以消方案。除亚稳态。异步FIFO用一种时钟写入数据,而用另外一种时钟读出数据。读写指针的变化动作由不同的时钟产生。因此,对FIFO空或满的判断是跨时钟域的。如何根据异步的指针信号产生正确的空、满标志,是异步FIFO设计成败的关键。本文提出一种新颖的异步FIFO设计方案,它通过先比较读写地址并结合象限检测法产生异步的空/满标志,再把异步的空/满标志同步到相应的时钟域。通过仿真验证,该方法是稳定有效的。1异步信号传输问题的分析在一个ASIC或FPGA库中,每种触发器都有时序要求。对于使用上升沿触发的触发器来说,建立时间(SetupTime)是在时

4、钟上升沿到来之前,触发器数据保持稳定的最小时间;而保持时间(HoldTime)是在时钟上升沿到消除亚稳态只是保证了信号电平的稳定,要在不同来之后,触发器数据还应该保持的最小时间[2]。如图1时钟域中准确传输数据还需要一个接口电路。异步FIFO就所示,在时钟上升沿前后的这个窗口内数据应该保持不是一种不同时钟域之间传递多位数据的常用方法。变,否则会使触发器工作在一个不确定的状态,即亚稳2异步FIFO设计态。当触发器处于亚稳态,且处于亚稳态的时间超过了异步FIFO是一种先进先出电路,用在需要实时数一个时钟周期时,这种不确定的状态将会影响到下一级据接口

5、的部分,用来存储、缓冲在两个异步时钟之间的数据传输。主要由双口存储器、读地址产生逻辑、写地址产生逻辑、空/满标志产生逻辑四部分构成。图3是一种常用的异步FIFO设计方案,其中,读地址(rptr)和空标志(rempty)由读时钟(rclk)产生,而写地址(wptr)和满标志(wfull)由写时钟(wclk)产生。把写地址与读地址相互比较以产生空/满标志。由于读写地址的变化由不同的时钟产生,所以对FIFO空或满的判断是跨时钟域的。如何《电子技术应用》2006年第7期本刊邮箱:eta@ncse.com.cn97集成电路应用状态。传统的做法是把读、写地

6、址寄存器扩展一位,最高位设为状态位,其余低位作为地址位。当读写指针的地址位和状态位全部吻合时,FIFO处于空状态;当读写指针的地址位相同而状态位相反时,FIFO处于满状态。传统的异步FIFO工作频率低、面积大。下面将介绍一种产生空/满标志的新方法。通过异步比较读写指针ptr以及读写指针的最高两位进行判断,产生两个异步的空/满标志信号(aemp-ty/afull)送入读写模块进行同步,最后向外部输出两个同步的空/满信号(rempty/wfull)。空/满信号的产生过程:如避免异步传输带来的亚稳态以及正确地产生空/满标志图5所示,对于深度是2n的异

7、步FIFO,按照其读指针是设计异步FIFO的难点。rptr[n:0]和写指针wptr[n:0]最高两位的不同取值,可把2.1读写地址产生逻辑地址空间分为四个像限[4]。当写指针比读指针落后一个读写地址线一般有多位,如果在不同的时钟域内直像限时,意味着写指针即将从后面追上读指针,FIFO处接同步二进制码的地址指针,则有可能产生亚稳态。例于“可能将满”状态,在图6所示的空满信号产生逻辑框如,读指针从011变化到100时,所有位都要变化,读指图中声明一个direction信号并把它置为1;当读写指针针的每一位在读时钟的作用下,跳变不一致,即产生毛完全

8、相等并且direction为1时,则FIFO处于满状态并且刺。如果写时钟恰好在读指针的变化时刻采样,得到的把满信号afull置为0(低电平有效);当读

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。