zoukankan      html  css  js  c++  java
  • FIFO深度

    async fifo的full和empty的判断:

    1)binary进制,MSB相同时,LSB也相同,empty;

                         MSB不同时,LSB相同,full

    2)gray code,MSB相同时,LSB也相同,empty;

                        MSB不同,MSB-1也不同,余下LSB相同,full;

    ASYNC FIFO中的empty和full的控制流,

    首先ptr,    ptr_w--------binary++---------gray code-------FF(wclk)--------SYNC FF(rclk)-------ptr_r

    然后empty

    fifo的深度问题:

    fifo主要做异步时钟域之间的数据缓存功能。

    首先应该理解清楚,该FIFO的应用场景,这会直接关系到需要缓存的数据量,FIFO的深度。

    其次,在数据缓存的过程中,最好是不发生fifo,满而等待的情况,所以从带宽角度来看,一般是写的带宽大于读的带宽,

             但是在这种情况下,如果写操作是连续操作,再大的FIFO也是没有意义的,所以FIFO的写入操作一般是基于Burst的,

             在这种写不连续的情况下,通过FIFO,来最小化,大的带宽到小的带宽的转变。

    所以FIFO的深度只与,两个带宽最大的差有关。

    BW = Freq * Data_width

    一般考虑的场景:空闲------Burst传输------空闲------Burst传输

    极端的场景:空闲-------Burst传输-------Burst传输------空闲(背靠背传输)

    一般的场景:T(Burst)*BW(read)+FIFO depth >= T(Burst)*BW(write)

                     且保证空闲时间内,slave可以把FIFO读空。(T(空闲)*BW(read) >= FIFO depth)

    极端的场景:T(Burst)*BW(read)+FIFO depth >= 2*T(Burst)*BW(write)

                     且保证空闲时间内,slave可以把FIFO读空。(T(空闲)*BW(read) >= FIFO depth)

  • 相关阅读:
    Java操作PDF之iText超入门
    Bootstrap 总结
    使用iframe框架后的页面跳转时目标页面变为iframe的子页面的问题
    Alluxio/Tachyon如何发挥lineage的作用?
    (转载)Zab vs. Paxos
    mysql批量数据导入探究
    读技术性文本的技巧
    Spark设计思想浅析
    MapReduce调优总结与拓展
    MapReduce 计算模式
  • 原文地址:https://www.cnblogs.com/-9-8/p/5909136.html
Copyright © 2011-2022 走看看