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)
相关文章
- 力求颜值与干货齐高,出品人深度解读三大专场
- 深度学习在CTR预估中的应用
- Unity3D ShaderLab 修改渲染队列进行深度排序
- Python视觉深度学习系列教程 第三卷 第13章 Faster R-CNNs
- Python视觉深度学习系列教程 第一卷 第5章 图像分类数据集
- 关于Qt几百个版本无法兼容的深度思考
- DockerCon 2016 深度解读:在阿里云上体验Docker 1.12内置的编排能力
- 【深度学习】基于知识库的手写体数字识别(Matlab代码实现)
- 深度盘点:Python 使用和高性能技巧总结
- 【华为机试真题 Python实现】最大括号深度【2022 Q2 | 100分】
- 异步FIFO最小深度的计算
- 转:RPA深度解读
- 五万字总结,深度学习基础。
- Pytorch总结八之深度学习计算(1)模型构造,参数访问、初始化和共享
- 任意深度异步FIFO设计
- 【数字IC/FPGA】任意深度异步FIFO的设计
- 【FIFO】FIFO 最小深度计算