微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 异步fifo的深度,如何确定?

异步fifo的深度,如何确定?

时间:10-02 整理:3721RD 点击:
想设计个异步fifo,异步fifo的深度该如何确定,是随意的嘛?如果不是该怎么计算呢?谢谢指教



    其实很简单,
1. 异步时钟下数据的速率匹配:pop rate和push rate在长时间上是均衡的(肯定,否则再深也不行)。那么在某段时间内因为POP和push速率不一样,就需要ASYNC FIFO。这一段时间内的pop和push数量相减,不就是深度吗?
2. 如果是异步时钟数据单纯的跨越时钟域的话,那么要算好两个时钟频率相差多少,不要出现还没pop就已经overrun了(push满了),或者还没push就pop了。就是,关注地址格雷码转变的速率。



    不是很懂,能说的而具体点吗?

靠理解吧,不好深入计算,文字不好描述清楚的。

二楼说的一般都是跨时钟区域的做法,基本上添加必要的控制辅助电路,不管深度怎么样都可以的,只不过性能优化的时候可能要求深度

要看应用场合,比如一次突发性数据是多少?读写时钟频率以及fifo两端数据宽度。

如果你的系统层面的速率是匹配的,那么只要保证你的深度不会导致写满/读空就可以了,在这个基础上在增加深度已没有意义了。要计算这个无非就是看你的业务的突发特性。

Thank you very much.

读地址和写地址之间可能最大的差是多少,深度就取稍微大一点,最好2的n次幂

FIFO深度跟你应用相关,满足最极端的情况而不是平均

靠理解吧,不好深入计算,文字不好描述清楚的。

看写入数据的速率和读出数据的速率多少,写快读慢的话,不靠外围控制电路控制的话,再深的fifo也会溢出,反过来会读空

你可以仿真看下读写地址之间的差距最大达到多少

小编说的深度就是每次数据能够存放的数量吧

FIFO深度满足应用的各种条件就OK

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top