FPGA学习-总结fifo设计中深度H的计算

时间:2025-04-28  作者:Diven  阅读:0

介绍:

FPGA学习-总结fifo设计中深度H的计算

对于fifo来说,H的设置非常重要。既要保证功能性,不溢出丢数,也要保证性能流水。深度设置过小会影响功能,过大又浪费资源。下fifo设计中深度H的计算。

一、同步sync fifo

1.1 流控反压后不溢出

假设数据一直发,下游一直读,读频率小于写频率时,fc(flow control)流控后,最坏的情况下,下游不读了。此时fifo反压信号拉高,上游写ready拉低,此时路上的数据需要能存入fifo,称之为过冲。过冲需要保证路上的数据被fifo完全吸收不溢出,因此fifo的深度H=过冲+上水位线TA。

1.2 不断流

对于同频同步fifo来说,只要深度大于1,只要保证上游每cycle都有wvalid,fifo读一定不会断流,可以实现流水。

当引入fc后,极端场景下,当达到反压水位线后,马上停止写入,有一拍的读出后,反压撤销。在读空fifo之前,必须有fifo的写入操作,以保证fifo不被读空,从而产生断流气泡。

假设每cycle都读,则在读完反压水位线深度数据时,第一笔写fifo命令产生。此时,

1)data产生到写入fifo路上时延N cycle;

2)fc发生后下一拍产生流控信号,data_gen停止产生data;

3)fc取消后,data_gen下两拍开始产生data;

4)此过程中每cycle都在读数据。

上述场景下,当发生流控时,过冲的数据个数是N+1,当取消流控时,产生数据的时延是N+2,因此fifo的深度H=N+1+N+2=2N+3。fifo深度只有大于这个数据才不会产生气泡断流。

二、异步async fifo

对于fc场景,异步fifo最大的问题是写读指针跨时钟域cdc同步中的时延。如果写指针同步到rclk为M个时延,读指针同步到wclk也为M个时延,则fifo深度H=2N+3+M+M=2N+2M+3。此处只是简单场景,真正计算深度时,还需考虑其打拍,信号组合逻辑等产生的时延。

编辑:黄飞

 

猜您喜欢

电子元器件中,贴片电阻体积小、性能稳定而被应用于各种电路设计中。了解贴片电阻的阻值对照表对于工程师和电子爱好者来说非常重要,可以帮助更好地选择和应用电阻。本文将...
2025-04-17 06:00:10

插头锁是重要的安全装置,应用于家庭和商业场所,以防止电源插头被随意拔掉或插入。了解插头锁的参数对于选择合适的产品非常重要。插头锁的材质是一个关键参数。常见的材质...
2013-03-07 00:00:00


2009-01-18 00:00:00


捕捉快速运动的无模糊图像,如下落的水滴或分子相互作用,需要昂贵的超高速相机,每秒可以获取数百万张图像。在一篇新论文中,研究人员介绍了一种相机,可以为广泛的应用提...
2023-09-16 09:46:00

线坠是应用于多个领域的工具,其主要功能是提供稳定的垂直参考。在建筑工程中,线坠被用来确保墙壁、柱子和其结构物的垂直度,帮助工人精确定位,保证工程质量。在室内装修...
2009-10-10 00:00:00

在选择MCU类免费验证板时,规格尺寸是一个重要的考量因素。MCU验证板的尺寸会根据不同的应用需求和芯片型号有所变化。常见的MCU验证板尺寸通常在5cm x 5c...
2011-10-03 00:00:00


DC-DC开关电源转换芯片,简单来说,就是一种能够改变直流电压大小的电子元件。就像一个变压器,可以把一个直流电压转换成另一个不同的直流电压。例如,你的笔记本电脑...
2024-01-16 00:00:00