关于异步FIFO的时钟同步问题分析

1.时钟同步原理
通过增加两个寄存器来实现时钟同步
在这里插入图片描述
在这里插入图片描述
对于fifo来说,无论是写地址在读时钟下同步,还是读地址在写时钟下同步,被同步地址都会是延迟两个时钟周期之前的地址,所以在进行比较判断的时刻,参与判断的同步地址总是小于等于当前时刻的真实地址。那么,

对于判断满信号full,由于满信号判断条件为写地址是否追上读地址,即rd_addr - wr_addr == 0, 在判断条件中,rd_addr 应该是领先的一方,否则将会出现超前写数据的情况,所以应该将读地址同步到写时钟下。同步后的判断条件则变为:rd_addr_syn - wr_addr == 0,由于rd_addr_syn <= rd_ addr(当前时刻),所以不会出现写数据超前情况。当rd_addr_syn < ad_addr时,此时为“虚满”状态。

对于判断空信号empty的情况,与上面分析类似 ,由于判断条件为wr_addr - rd_addr == 0,那应该将写地址同步到读时钟下,才不会出现超前读数据的情况,当然也会出现“虚空”状态。

还有就是。fifo满是对于写操作有用的(因为满了就不可以写了),所以满信号必须同步到写时钟之下。而fifo空是对读操作有用的(因为空了就不可以读了),所以空信号必须同步到读时钟之下。

写完之后看到一篇解释特别好的博客,链接:
https://blog.csdn.net/moon9999/article/details/77943407

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值