推荐答案
测试一下
题目
32bit位宽的异步fifo,写时钟1000M,读时钟续率800M,在数据包大小为4KB,包间隔足够大时,fifo的最小深度为()
A、158
B、205
C、638
D、820
参考答案与知识点
参考答案
正确答案为B:205。
解析:FIFO最小深度计算需考虑写时钟与读时钟的频率差异以及数据突发长度。本题中,写时钟频率f_w=1000 MHz,周期T_w=1 ns;读时钟频率f_r=800 MHz,周期T_r=1.25 ns。数据位宽32 bit(4 Byte),数据包大小为4 KB,即4096 Byte,对应的数据字数为4096/4=1024个。由于包间隔足够大,只需计算单个包内写操作与读操作的差值。写入整个包所需时间T=1024字×1 ns=1024 ns。在这段时间内,读时钟可读出的字数为T/T_r=1024/1.25=819.2个,因此FIFO中最大累积数据量为1024−819.2=204.8,取整后最小深度为205(向上取整)。注意:实际工作中需考虑时钟抖动、相位差等因素,但理论计算取整即可。
易错点:①误将4KB当作4096个字,忽略位宽转换(32bit=4B);②直接计算频率比1000/800=1.25,误得深度1024×(1-1/1.25)=204.8,但未明确取整方向;③错误考虑连续读写导致深度过大(如选项C 638、D 820),忽略了包间隔足够大这一条件。
涉及知识点
- 异步FIFO深度计算公式
- 时钟频率与周期的换算
- 数据包大小与位宽的转换
- 突发传输中的读写速率匹配
- 深度取整原则(向上取整)