zoukankan      html  css  js  c++  java
  • 老司机带带我,FIFO不简单


    FIFO,没有想象的那么简单!

    根据一般的原则,FIFO这件事情啊,如果能用IP先别自己手写。可以通过FPGA厂家的的IP生成工具生成相应的FIFO。

    FIFO中的格雷码:

    格雷码应用于异步FIFO的地址操作,格雷码的生成可以当做个入门练手的小模块,然后慢慢搭一个异步FIFO,把关于FPGA的时钟、复位、管教基本上都可以涉及到,绝对有帮助。

    FIFO满防溢出的问题也被讨论的挺多了,加个可编程满作为保护时应有之意。

    空信号就没必要搞什么即将空,一般注意读使能需要跟非空信号做个与运算,这是基本操作。

    FIFO好好做,还是很值得深入研究的。

    例如:

    • 异步FIFO,如何做到适配不同时钟域。简单例子,10m工作时钟写数20m时钟读,与10m时钟写数100m时钟读数的区别是什么。

    • 读写地址使用格雷码,格雷码编码解码,如果不用格雷码可能出现的问题,以及原因。

    • 如果该异步FIFO是用来作为存储以包为单位的数据,是否可以添加一些逻辑,控制错包,或者是如何处理,将错包抛弃。

    • 如果异步FIFO有数据位转换功能,32b的数据入16b数据出,该怎么处理。

    异步FIFO一些要点:

    • 格雷码的轴对称问题。

    • 为何用格雷码而非二进制码做CDC。

    • 异步FIFO的大致框图。

    • 满空信号产生。尤其是满。

    • RDCLK和WRCLK差距较大时,是否会造成multi-bit的问题。

    • 是否会造成跳过了full而full+1的状态漏过满。

    异步fifo的时序约束也是非常麻烦的,不要认为整个格雷码跨时钟域就可搞定,而且是可靠的,那是理想情况,实际的情况每bit延时都是不一样的,会给时序造成很大困扰。


    版权所有权归卿萃科技 杭州FPGA事业部,转载请注明出处

    作者:杭州卿萃科技ALIFPGA

    原文地址:杭州卿萃科技FPGA极客空间 微信公众号


    扫描二维码关注杭州卿萃科技FPGA极客空间


  • 相关阅读:
    植物:吊兰
    植物:文竹
    理论:混沌理论
    图书-数学:《数学之美》
    调味品:味精
    linux查看文件大小df-du
    linux防火墙开启-关闭
    tomcat端口号、日志、启停
    chmod
    jdk-tomcat环境变量设置
  • 原文地址:https://www.cnblogs.com/alifpga/p/9153939.html
Copyright © 2011-2022 走看看