异步FIFO

标签: 异步FIFO 数字芯片
5人阅读 评论(0) 收藏 举报
分类:

参考文献为:Clifford的经典论文《Simulation and Synthesis Techniques for Asynchronous FIFO Design》一共有两篇文章。

格雷码和二进制之间的转换:


                                       图1

异步FIFO的设计难点:

1.判断空/满标志

设置一个快要空/快要满,空/满的标志位。

空:“空”信号产生在读时钟域,此时的读指针和写指针完全相同,包括MSB。


:“满”信号产生在写时钟域,此时的写指针追上了读指针,且MSB不同。但是格雷码的“满”状态判断很容易出错,如下图2所示,会出现错误的判断。在读7和写8的地方误判为已经满了,会造成读空,读0和写8是满状态,没有判断会造成溢出。解决办法如下图3所示。还有一种解决方法就是:把地址指针转化为二进制,比较二进制的值。


                                                  图2


                                                    图3

2.不同时钟域的速度问题

当数据从一个较快的时钟域传递到一个较慢的时钟域。wclk>rclk

问题1:同步的格雷码变化了2次,但是只采样到了一次,则同步值发生了多个bit改变,将会造成多比特同步问题吗?

  • 当然不会,因为多比特的同步问题只发生在多个比特同时在一个慢时钟的上升沿发生变化,而格雷码变化了2个比特,意思是在慢时钟上升沿到来之前格雷码就已经发生了一个bit的变化。只有第2个bit在慢时钟的上升沿时间变化。因此不存在格雷码计数器的同步问题。

问题2:因为写时钟域中格雷码变化值比读时钟域快,会不会发生格雷码在快时钟域已经增加到满状态了甚至超过满状态了,还没有检测到“满”,导致FIFO溢出?

  • 不会发生这种情况,因为wclk>rclk,写指针会很快赶上读指针,当写指针和读指针相等的时候,wfull=1,就会停止继续写数据。直到读指针传递过来。
  • 同理读指针也是类似的。
  • 转:不会,因为Overflow和Underflow发生的条件只有一个:就是本时钟域的指针超过了对面时钟域的指针,而从对面时钟域同步过来的指针本来就是对面时钟域指针的延迟,所以本时钟域的指针永远没办法超过对面时钟域同步过来的指针

3.多个比特异步复位问题

转:Reset的问题

    ★读与写时钟域使用的是不同的Reset信号

    ★在reset的时候,FIFO中的数据也被清空,变为无效数据,所以reset是同步的

    ★但是读写两端的set是异步的


转载的文献为:https://blog.csdn.net/u014395662/article/details/79770821

后续的学习计划是:编写验证代码,对设计的正确性进行验证


查看评论

Ajax异步数据交互

-
  • 1970年01月01日 08:00

异步fifo的设计(一)

上一篇文章讲的是同步fifo的设计,这篇文章主要讲一下异步fifo的设计。异步fifo和同步fifo的区别主要在于读写所用的时钟是否一致。异步fifo设计因为读写所用的时钟不一致因而设计比较复杂,会涉...
  • IamSarah
  • IamSarah
  • 2017-07-25 16:59:18
  • 1977

异步FIFO理解

一、异步FIFO与同步FIFO的区别   二、关键点及解决方法   三、深度的计算   四、整体结构图(style #1 if you have saw SNUG user guide) Simula...
  • ocarvb
  • ocarvb
  • 2015-04-08 09:40:06
  • 3943

异步FIFO的配置与使用注意事项

网上有好多资料只是讲述FIFO的时序,但是对于使用者来说,没有深入理解其时序的必要性,我们只需要争取使用就好了,因为FIFO并不需要我们自己写,我们可以用其自带的IP核。 首先是配置FIFO模块,步骤...
  • zhitianya
  • zhitianya
  • 2016-01-03 18:07:42
  • 2339

异步FIFO设计方法

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

异步FIFO中的几个难点问题思考与解释

异步FIFO的进一步思考
  • moon9999
  • moon9999
  • 2017-09-12 17:57:13
  • 479

一种异步FIFO实现

异步fifo整体模型: 优点: 分别在读、写时钟域判断空、满信号,即时使用状态信号控制fifo的操作,可有效避免读写溢出问题。 在判断空满状态时,本设计使用了格雷码进行比较,可有效避免数据变...
  • s_a_n_
  • s_a_n_
  • 2013-01-12 12:58:30
  • 1718

异步FIFO Verilog代码注释分析

近日复习数字电路设计,遇到异步FIFO的问题。 在百度找到相关代码,阅读理解后,写出注释,方便自己今后查阅以及迅速理解;同时在此分享,以便广大读者查阅。 并,感谢分享者的无私精神!此异步FIFO,...
  • evolone
  • evolone
  • 2015-08-30 16:44:59
  • 6130

同步FIFO和异步FIFO的Verilog实现

FIFO是英文First In First Out 的缩写,是一种先进先出的数据缓存器,他与普通存储器的区别是没有外部读写地址线,这样使用起来非常简单,但缺点就是只能顺序写入数据,顺序的读出数据, 其...
  • liang0000zai
  • liang0000zai
  • 2014-05-14 20:29:26
  • 5301

Verilog基础知识8(异步FIFO的FPGA实现)

需求说明:Verilog设计 内容       :异步FIFO设计 来自       :时间的诗 原文:http://www.cnblogs.com/BitArt/archive/2013/0...
  • Times_poem
  • Times_poem
  • 2016-07-15 17:51:02
  • 8061
    个人资料
    等级:
    访问量: 22
    积分: 31
    排名: 196万+
    文章存档