找回密码
 注册
关于网站域名变更的通知
查看: 312|回复: 1
打印 上一主题 下一主题

FIFO深度计算分析

[复制链接]
  • TA的每日心情
    开心
    2019-11-19 15:19
  • 签到天数: 1 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2019-5-24 07:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    FIFO深度计算分析
    ) t- M8 \2 `% f- m

    ' O) ?, _- ?2 @3 d写时钟周期w_clk,
    ) i+ a/ _# B- h+ L: P5 x% Y1 E) e读时钟周期r_clk,; ]8 t# p2 N* J( @) d! j' |
    写时钟周期里,每B个时钟周期会有A个数据写入FIFO7 a7 |0 U& ?# y6 A3 `
    读时钟周期里,每Y个时钟周期会有X个数据读出FIFO5 H  q; m+ s) s+ D9 w
    则,FIFO的最小深度是?
      \$ R, R# U0 w7 S' }; k( T
    6 A( [" r$ H# n$ f# _* y; E7 l首先,这道题不一定有解
    , n, f; T; O$ A. {! @) J- }有解的必要条件是在一定时间内(足够长),写入的数据数量一定要等于读出的数据数量2 J. P7 T, e; _% O" y
    因此有:A/B * w_clk = X/Y * r_clk
    1 s( c3 x* j5 \- E5 I4 R3 o* ~5 ^; t7 @& T4 M2 s5 S" ?! O( k+ g
    其次,算出写数据的最大burst_length。考虑最坏情况
    - T! ?5 K1 Z! t& [比如,如果条件给出,每100个写时钟,写入80个数据,那么在背靠背的情况下,burst_length = 2*80=160
    9 T+ R3 k, G2 |7 F) F; B, \% O. l; y1 Q1 \( d
    最后,fifo_depth = burst_length - burst_length * X/Y * r_clk/w_clk
      f# r  H5 _2 X, V% M
    % f) l8 l  x5 W- `  F$ sBTW:通常,为了安全起见,都会多留一些depth的余度2 C+ e& \2 t! P% y. S1 O$ @  ?- L
    个人觉得,公式应该是这样:- e3 L* ?- c2 m, b" z
    A/(B * w_clk) = X/(Y * r_clk)2 Y, t  ?2 }% U4 Z6 H* T
    # o/ W. D6 z7 n, ?, a! |$ U6 d
    fifo_depth = burst_length - burst_length * X/Y * w_clk /r_clk
    6 K2 z0 o# k% L8 C& Z" `
    ( W; }/ ?  ^; b- f( k1 L+ J8 G% n! e
    举例说明:
    # H3 v/ t4 E5 l5 \' [6 ]如果100个写时钟周期可以写入80个数据,10个读时钟可以读出8个数据0 Y- {9 K! c3 M3 x, g+ a% \& y8 c
    其中w_ck=5ns,r_ck=10ns& j+ }6 D' `# a

    . m7 q' ?: f: Q* F* S% G9 s如果按照之前的公式,得出的深度为:fifo_depth = burst_length - burst_length * X/Y * r_ck/w_clk=160-160*8/10*2=-94,显然是不对的4 @! O$ D8 {6 ^" Z( K2 _. O$ o6 D

    5 u/ ~5 F: [! E/ h- k5 w实际上,考虑背靠背(20个clk不发数据+80clk发数据+80clk发数据+20个clk不发数据的200个clk)
    ' n. C$ V' N3 r
    ( k: K& N8 A% X$ `* L" ^这样在中间160个写时钟周期连续写的情况下,只能读出160*5/(10*10)*8=64个数据,所以FIFO的深度应该为160-64=96! \/ N# X9 @1 i" ]% L! a0 ~4 I
    也就是fifo_depth = burst_length - burst_length * X/Y * w_clk /r_clk=160-160*8/10*5/10=96* B4 S6 B* e' X8 T

    6 e& J5 V6 b  k* u) r# Q: e! d% U5 [% b# Z: b" \! T+ ~- Q9 F
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-10-9 15:55 , Processed in 0.140625 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表