FIFO原理解析及应用

本文探讨了FIFO在FPGA中的应用,尤其是在处理跨时钟域数据交互时的重要性。介绍了FIFO端口结构,以及如何避免因写满读空导致的问题,包括标准FIFO和FWFT读模式。还关注了异步复位信号的正确处理,强调了同步级数设置的必要性。
摘要由CSDN通过智能技术生成
  1. 1.为什么要用fifo

           模块时钟不同步,可能造成数据错误,多用在跨时钟域传输。FPGA程序中模块与模块之间存在数据交互的不同步,并且数据量较大的时候,FIFO几乎为FPGA工程师提供了最佳的解决途径。当然在实际项目工程中,这种不同步可能是源于跨时钟域的数据交互、也可能是由于各个模块数据处理速度的不平衡等很多因素所造成的

    2.Fifo端口

           Fifo读写端口独立,在写端口具有写满标志信号full、使能信号we_en,写时钟wr_clk,输入数据端口din,写端口数据量wr_data_coun;读端口具有读空信号emptyrd_en,rd_clk,dout, rd_data_count

    3.fifo中存在的问题

           1)写满读空产生的原因

                  在设计读写机制时不考虑写端口的full信号和wr_data_count写入多少数据的指示信号,也不考虑读端口的empty信号和rd_data_count可读多少数据的指示信号。跟蓄水池原理一样

           2)如何避免写满读空

                  在进行写操作时可以根据wr_data_cout加入逻辑判断,在进行读操作时根据empty信号使用组合逻辑来产生rd_en信号,如果使用时序逻辑会产生延迟。

    深度计算:

    Fifo模式

    1.Standard FIFO和First-word-Fall-Through两种读模式,FWFT(First-word-Fall-Through)可以不需要读命令,自动的将最新数据放在dout上。

    2.就是异步复位信号持续时间需要多长的问题,理论上 1 个较小的 时钟周期(读写时钟周期中较小的那个,这里说的是周期较小的,也就是频率高的那个的) 就行,实际使用推荐至少保持有 3 个或着设置同步级数个周期。这里提到的同步级数就是在 IP 设置的第一个界面中的 Synchronization Stages,这个只有在选择独立时钟 FIFO 类型时才 会有这个设置,在相同时钟 FIFO 类型下是没有这个设置的。

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值