FIFO的阈值如何设置

什么是fifo?
fifo是first in first out 的缩写,一般是由寄存器reg或者ram搭起来的,相对于普通存储器而言,fifo没有地址可操作的地址总线,因而使用比较方便,但是数据只能像水流一样排队进排队出。
  什么情况下使用fifo?
fifo一般发生在不同时钟域下数据的交互或者同一时钟域下写快读慢的情况下,就像“蓄水池“一样,让下游来不及处理的数据暂存起来,不会因此而发生数据丢失。当然写时钟数据不能一直是持续的写入,否则再大的fifo迟早也会溢出。写时钟侧数据应是突发写入,在某一段时间内写数据是大于读数据的,此时fifo的深度要保证这段时间内数据不会溢出。从长时间轴来看写口和读口流量必定是均衡的。从带宽角度来看写带宽是大于读带宽的,fifo的作用就是完成大带宽到小带宽的转变。
      什么是fifo的阈值?
fifo的接口信号一般会有将满prog_full和prog_empty信号,对应afull_cnt将满阈值和aempty_cnt 将空阈值;当fifo的数据data_count大于afull_cnt 时,将满afull 将会拉高,由于路径上有一定延时(nxclk)因此必须要提前通知上游模块,不要再给下游模块发数据了,否则fifo会溢出,不会使用full满信号作为通知上游的反压信号。prog_empty 信号一般不会使用,使用empty,fifo非空即读。
fifo的阈值如何设置?
 1.当fifo的数据等于afull_cnt时,afull 开始拉高,反压    路径延时m拍到达上游模块module a,此时fifo中的数    据拍数为afull_cnt + m
 2.上游模块modulea 收到afull信号后开始响应,但是还    会给下游发送路径流水数据n拍
   此时fifo中的数据为afull_cnt +m +n
 3.为了数据不会溢出,fifo_depth >= afull_cnt +m        +n ;得到afull_cnt =(m+n)+ (m+n) =2*(m+n)。
  由于异步fifo通过比较读写指针进行满空判断,但是读写指针属于不同的时钟域,所以在比较之前需要先将读写指针进行同步处理,这样在设计的时候读写指针用了至少两级寄存器同步,同步会消耗至少两个时钟周期,势必会使得判断空或满有所延迟。满判断时并不是真的满,有2个地址不会进行读写,因此在理论计算的fifo的深度上要多加2。通常fifo深度会留有20%左右的裕量;而且对与异步fifo而言fifo的深度只能是2^n
如下图所示,如果afull_cnt设的过小假设为5  m+n=15 fifo将会被读空。导致数据断流t->t+15 是起反压期间,写多少,读走多少,data_count 不会变化维持在afull_cnt 上,当撤销反压之后(t+15->t+30) 这段时间不会有数据写入,因此必须使得afull_cnt 大于m+n.
此例,对于异步fifo而言,fifo深度理论计算至少等于2*15+2 =32 正好是2^n,为了设计的可靠性,一般会预留一定裕量,异步fifo的深度将会扩大一倍,depth=64;15=fifo_dpeth
极端的场景:空闲---bust---bust----空--- (背靠背场景)
深度计算公式:t(bust)*bw(read)+fifo_depth >=2*t(bust)*bw(write)
且保证空闲时间内slave把fifo读空:t(空闲时间)*bw(read) >=fifo_dpeth
2.fifo用于缓冲块数据流,一般用在写快读慢时,遵循的规则如下:
{fifo深度 /(写入速率 - 读出速率)} = {fifo被填满时间} > {数据包传送时间}= {写入数据量 / 写入速率}
即:保对fifo写数据时不存在overflow,从fifo读出数据时不存在underflow
计算公式如下:
fifo_depth = burst_length - burst_length * x/y * r_clk/w_clk
写时钟频率w_clk,
读时钟频率 r_clk,
写时钟周期里,每b个时钟周期会有a个数据写入fifo
读时钟周期里,每y个时钟周期会有x个数据读出fifo


快商通推出智能人机对话平台KICP
日本PCB产量持续萎缩、软板产额遽减4成!
绝缘子分布电压测试仪的相关特征介绍
工信部宣布将对电信业务分类目录2015年版进行修订
印度航空母舰EPC建造工程项目竣工
FIFO的阈值如何设置
库克主掌供应链大权,苹果的滋味变了?
Lumia900大陆行货正式开卖 最终售价确定
英唐智控与中科迪高合作 推动毫米波芯片领域发展
FLIR T500系列热像仪 让研究拥有无限可能
新一轮“工业革命”的浪潮正在袭来
华为荣耀Magic进入倒计时!未来不止于智能
alphago长什么样,明年你就可以再次看到更牛的阿尔法狗
英特尔酷睿i9-11900 ES版曝光
华为云数据库VS自建数据库,上“云”不是智商税
中国半导体企业境内IPO关注要点
友达光电太阳能实验室获得 UL WTDP Lab四项专业认证
东进统一安全认证平台 安全服务需持续更新
华为荣耀V9今日发布:麒麟960+4000mah+6g内存,荣耀V9你会买吗?
音质好性价比高的蓝牙耳机有哪些,无线蓝牙耳机推荐高性价比