当前位置: 首页 > news >正文

同步fifo和异步fifo

1. 同步FIFO

特点

  • 读写操作共享同一时钟:读写逻辑由单一时钟驱动。

  • 无需跨时钟域处理:空/满标志生成逻辑简单。

  • 结构简单:适用于同时钟域的数据缓冲。

实现关键

  • 读写指针:使用计数器记录读/写位置。

  • 空/满判断

    • 空标志:读指针等于写指针。

    • 满标志:写指针比读指针多一圈(需额外位判断,如 (写指针 - 读指针) >= 深度)。

  • 存储器:通常用寄存器或双端口RAM实现。

2. 异步FIFO

特点

  • 读写操作使用不同时钟:写时钟(wr_clk)和读时钟(rd_clk)独立。

  • 需跨时钟域同步:读写指针需同步到对方时钟域,避免亚稳态。

  • 复杂空/满标志生成:使用格雷码(Gray Code)减少同步时的亚稳态风险。

实现关键

  • 格雷码转换:读写指针转换为格雷码后再跨时钟域传递。

  • 双触发器同步器:同步指针时使用两级触发器消除亚稳态。

  • 空/满标志逻辑

    • 满标志:写指针比读指针多一圈(需同步后的读指针判断)。

    • 空标志:同步后的写指针等于读指针。

关键区别总结

特性同步FIFO异步FIFO
时钟域读写共享同一时钟读写使用不同时钟
空/满标志直接比较二进制指针需格雷码转换和跨时钟域同步
复杂度高(需处理亚稳态和同步)
应用场景同时钟域数据缓冲跨时钟域数据传输(如AXI总线)
资源消耗较少较多(需同步器和格雷码逻辑)

注意事项

  1. 格雷码的作用

    • 相邻数值仅1位变化,减少跨时钟域同步时的亚稳态概率。

    • 仅适用于深度为2的幂的FIFO(如16、32、64等)。

  2. 亚稳态处理

    • 使用双触发器同步器(2-FF Synchronizer)确保指针同步安全。

    • 空/满标志需使用同步后的指针进行比较。

  3. 深度设计

    • FIFO深度需大于最大可能的数据速率差。

    • 异步FIFO深度建议为2的幂次方(简化格雷码转换)。

  4. 复位策略

    • 异步复位需同步到各自的时钟域。

    • 复位后指针和标志需初始化为一致状态。

 

相关文章:

  • ARM架构各版本内核处理器总结
  • 线程安全问题
  • Hadoop最新版本hadoop-3.4.1搭建伪分布式集群以及相关报错解决
  • 减少内存占用的两种方法|torch.no_grad和disable_torch_init
  • python-leetcode-最长公共子序列
  • 从二维随机变量到多维随机变量
  • P9420 [蓝桥杯 2023 国 B] 双子数--最高效的质数筛【埃拉托斯特尼筛法】
  • 【uniapp】在UniApp中实现持久化存储:安卓--导出数据为jsontxt
  • 【全干货】cocos简短demo制作-三消类游戏
  • 测试的BUG分析
  • 第二十九:5.7.【$subscribe】侦听数据
  • SpringBoot集成easy-captcha图片验证码框架
  • 《Somewhat Practical Fully Homomorphic Encryption》笔记 (BFV 源于这篇文章)
  • 前端Javascrip后端Net6前后分离文件上传案例(完整源代码)下载
  • 2025 最新版鸿蒙 HarmonyOS 开发工具安装使用指南
  • Go入门之文件
  • 华为AP 4050DN-HD的FIT AP模式改为FAT AP,家用FAT基本配置
  • 练习题:57
  • JDBC 进阶(未完结)
  • C# 确保程序只有一个实例运行
  • 香港特区政府强烈谴责美参议员恐吓国安人员
  • 习近平向第三十四届阿拉伯国家联盟首脑理事会会议致贺信
  • 大外交丨3天拿下数万亿美元投资,特朗普在中东做经济“加法”和政治“减法”
  • 习近平就乌拉圭前总统穆希卡逝世向乌拉圭总统奥尔西致唁电
  • 舱位已排到月底,跨境电商忙补货!美线订单大增面临爆舱,6月运价或翻倍
  • 钕铁硼永磁材料龙头瞄准人形机器人,正海磁材:已向下游客户完成小批量供货