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

时间:2025-09-12  作者: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。此处只是简单场景,真正计算深度时,还需考虑其打拍,信号组合逻辑等产生的时延。

编辑:黄飞

 

猜您喜欢

在选择鼠标垫时,有几个关键参数值得关注。首先是尺寸,鼠标垫的大小直接影响使用体验。常见的尺寸有小型、中型和大型,用户可以根据自己的桌面空间和使用习惯进行选择。其...
2013-04-29 00:00:00

2014-10-21 00:00:00

花露水是以植物提取物为主要成分的液体产品,通常用于个人护理和环境清新。主要成分包括香料、酒精和水,有时还会添加一些天然的植物精华,如薄荷、香葱、薰衣草等。花露水...
2024-06-08 00:00:00

2023年8月6号,上海国际锂电池技术装备展览会在上海新国际博览中心圆满落幕。为期三天的展会上,华怡丰展台摩肩接踵,人声鼎沸,现场观众热情高涨,咨询合作的客户络...
2023-08-08 10:35:00

整流电路是电子电路中重要的一部分,将交流电转换成直流电,为各种电子设备供电。理解整流电路输出的波形数据对于设计和调试电路很重要。这份介绍将帮助你轻松理解整流电路...
2024-07-28 00:00:00

引言在系统编程ISP(In System Programming)是指在用户设计的目标系统或印刷电路板上为重新配置逻辑,或实现新的功能而对器件进行编程或反复编...
2020-04-20 09:29:00

现代科技快速发展的时代,各种配件不仅是设备的延伸,更是提升用户体验的重要配件。今天,我们将聚焦于一款名为“Accessories_7.3X5.75MM_SM”的...
2025-04-25 03:31:18


许多场景下,我们需要将 UPS (不间断电源) 接入现有的双电源配电箱,以保障关键设备在断电时的持续运行。以下是 UPS 接入原双电源配电箱的常见方法和注意事项...
2024-11-06 00:00:00

2022-01-22 13:13:30