异步FIFO原理

异步FIFO原理异步 FIFO 原理一 FIFO 概念及用途 FIFO 即英文 FirstInFirst 的缩写 是一种先进先出的数据缓存器 与普通存储器的区别是没有外部读写地址线 这样使用起来非常简单 但缺点就是只能顺序写入数据 顺序的读出数据 其数据地址由内部读写指针自动加 1 完成 不能像普通存储器那样可以由地址线决定读取或写入某个指定的地址 按读写是否为相同时钟域分为同步和异步 FIFO 这里介绍异步 FIFO 主要用于跨时钟域传输数据

异步FIFO原理

一,FIFO概念及用途
FIFO即英文First In First Out 的缩写,是一种先进先出的数据缓存器,与普通存储器的区别是没有外部读写地址线,这样使用起来非常简单,但缺点就是只能顺序写入数据,顺序的读出数据,其数据地址由内部读写指针自动加1完成,不能像普通存储器那样可以由地址线决定读取或写入某个指定的地址。按读写是否为相同时钟域分为同步和异步FIFO,这里主要介绍异步FIFO,主要用于跨时钟域传输数据。
二,FIFO的常见参数
宽度:THE WIDTH,FIFO一次读写操作的数据位,
深度:THE DEEPTH,FIFO可以存储多少个N位的数据(如果宽度为N)。
满标志:FIFO已满或将要满时由FIFO的状态电路送出的一个信号,以阻止FIFO的写操作继续向FIFO中写数据而造成溢出(overflow)。
  空标志:FIFO已空或将要空时由FIFO的状态电路送出的一个信号,以阻止FIFO的读操作继续从FIFO中读出数据而造成无效数据的读出(underflow)。
  读时钟:读操作所遵循的时钟,在每个时钟沿来临时读数据。
  写时钟:写操作所遵循的时钟,在每个时钟沿来临时写数据。
  读指针:指向下一个读出地址,读完后自动加1。
  写指针:指向下一个要写入的地址的,写完自动加1。
读写指针其实就是读写的地址,只不过这个地址不能任意选择,而是连续的。
三,FIFO的关键:读写指针和空满标志
1,当读写指针相等时,表明FIFO为空:
在这里插入图片描述














六,FIFO功能点简单总结

  1. 同时读写,读写数据正确检查
  2. FIFO满标志位检查
  3. FIFO空标志位检查
  4. 写过程中发生写复位,写数据和FIFO满标志位被清空
  5. 读过程中发生读复位,读数据和FIFO空标志位被清空
  6. 读写时钟相位相同,异步FIFO能正常工作
  7. 读写时钟相位不同,异步FIFO能正常工作
  8. 写时钟等于读时钟,异步FIFO能正常工作
  9. 写时钟快于读时钟,异步FIFO能正常工作
  10. 写时钟慢于读时种,异步FIFO能正常工作
  11. 写过程中发生写复位以后,异步FIFO能继续正常工作
  12. 读过程中发生读复位以后,异步FIFO能继续正常工作
  13. FIFO满以后,继续往FIFO写数据,异步FIFO不会被卡死,数据被读走以后,异步FIFO能继续正常工作
  14. FIFO空以后,继续从FIFO读数据,异步FIFO不会被卡死。继续往FIFO写数据,异步FIFO能继续正常工作
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/219724.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午10:02
下一篇 2026年3月17日 下午10:02


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号