← ASR题目解析——李锐博恩

推荐答案 测试一下

FIFO最小深度计算?

问答题 中等 笔试真题问答题

参考答案

FIFO最小深度计算用于确保在异步时钟域数据传递时不丢失数据,核心是评估最坏情况下写数据量与读数据量的差值。最坏情况通常发生在写时钟频率大于读时钟频率、写使能连续(或背靠背突发)而读使能可能非连续时。 常用公式: FIFO深度 ≥ 突发长度 - (突发长度 × (读时钟频率 / 写时钟频率) × 读使能有效占空比) 若读使能连续且读时钟为最快频率下的最慢读速率,可简化为: FIFO深度 = 突发长度 - (突发长度 × (读时钟周期 / 写时钟周期)) 实际计算步骤: 1. 确定最大突发写长度(连续写的数据个数)。 2. 确定写时钟频率与读时钟频率。 3. 确定读使能的有效模式:若读使能每个读时钟周期拉高一次,则每周期读1个数据;若读使能每N个周期拉高一次,则读速率降为1/N。 4. 计算在写突发持续时间内读出的数据量: 写突发持续时间 = 突发长度 × 写时钟周期 该时间内读时钟周期数 = 写突发持续时间 / 读时钟周期 该时间内读出的数据量 = 读时钟周期数 × 每读时钟周期的读取个数(读使能平均占空比) 5. FIFO最小深度 = 突发长度 - 读出的数据量,并向上取整到整数。 易错点: - 忽略背靠背传输:如果写使能不连续但可能连续两个写时钟写数据,需将最坏情况下的连续写长度作为突发长度。 - 未考虑读使能占空比:读使能并非每个周期有效时,需精确计算平均读速率。 - 读写时钟频率互换或频率比计算错误:需以实际时钟频率为单位,不可混淆。 - 忘记向上取整:深度必须为整数,且需留安全余量。 示例:写时钟100MHz,读时钟80MHz,最大突发写长度100,读使能每4个读时钟周期读1个数据。写周期10ns,读周期12.5ns,写突发持续1000ns,读时钟周期数=1000/12.5=80,读出数据=80/4=20,最小深度=100-20=80。

涉及知识点

  • FIFO深度计算公式
  • 突发长度与背靠背传输
  • 读写使能占空比分析
  • 时钟周期与频率换算
  • 最坏情况场景选择
← 上一题
登录后反馈错题
下一题 →