异步FIFO深度 计算模型以及详细推导
本文为EETOP网友:masaka_xlw 原创,这里仅给出摘要。
可以登录论坛下载全文:http://bbs.eetop.cn/thread-666298-1-1.html
摘要:
当异步FIFO读写两端的through-put不同时(平均意义上,clk-domain-crossing,写快于读),会遇到FIFO depth的问题。即FIFO至少深度是多少时才能保证读写流畅不卡顿。尤其同时需要严格保证performance和area,并且缓冲FIFO/buffer在chip中分布较为密集的架构,此问题会很关键甚至成为瓶颈。
当然,如果FIFO在chip里不是critical path,gate count什么的在架构上也不关注,这问题实际上无关紧要,depth合理即可。比如通常的选取值为: D = write_burst_lenX (Wclk/Rclk), 其中选择比D大且最接近D值的一个2^N数值即可, 或者直接把(Wclk/Rclk)向上取整,等等。
网上比较完备的一个问题模型为:
写时钟Wclk, throughput 为平均B个Wclk写入A个数据
读时钟Rclk,throughput为平均Y个Rclk读出X个数据
读写的burst_len同为 BST_LEN
求FIFO的DEPTH?
上述问题所谓corner case实际上是:burst write最大长度连续写(每cycle写一数据)的同时burst read尽可能长地保持0读出,则写和读的差即是fifo depth.
可以登录论坛下载全文:http://bbs.eetop.cn/thread-666298-1-1.html
赞 (0)