推荐答案
测试一下
题目
有一个FIFO设计,输入时钟100Mhz,输出时钟80Mhz,输入数据模式是固定的,其中1000个时钟中有800个时钟传输连续数据,另外200个空闲,请问为了避免FIFO下溢/上溢,最小深度是多少
A 320
B 80
C 160
D 200
参考答案与知识点
参考答案
正确答案是 C 160。
解析:输入时钟频率 100MHz,周期 10ns;输出时钟频率 80MHz,周期 12.5ns。输入数据模式为每 1000 个输入时钟中有 800 个时钟连续传输数据,即突发长度为 800 个数据。在连续传输的 800 个时钟内,输入数据量为 800 个。这段时间长度为 800 × 10ns = 8000ns。在此期间,输出端以 80MHz 时钟连续读取(假设输出无空闲),读取数据量为 8000ns ÷ 12.5ns = 640 个。因此,FIFO 中最大累积数据量为 800 - 640 = 160 个。后续 200 个空闲时钟内,输出继续读取,可将 FIFO 清空。所以最小深度为 160,避免上溢或下溢。
易错点:①误将输入有效数据率 0.8 直接与时钟比相乘,得到错误深度;②忽略突发特性,误以为平均速率相等则深度为0;③将输入时钟频率与输出时钟频率直接代入公式忘记考虑输入使能比例。
涉及知识点
- FIFO深度计算公式
- 突发传输最大累积量计算
- 时钟频率与有效数据率关系
- 异步FIFO读写速率匹配
- 最坏情况分析