凡亿教育-思敏
凡事用心,一起进步
打开APP
公司名片
凡亿课堂 | 面试指南
当前位置: 首页 面试指南
FPGA FIFO深度怎么计算?读写速率不同时要多深?FPGA面试
浏览量:312
2026-09-18 09:05:28
一句话答案

FIFO 深度由突发长度决定:写快读慢时,最深瞬间缓存 = 写速率×突发时间 - 读速率×突发时间;双口 RAM 深度要大于这个值并留余量;空满标志用格雷码指针判断。

本文概述

FIFO 是跨时钟和速率匹配常用,面试常考:FIFO 深度怎么算、空满判断、什么时候用 FIFO。回答要现场算深度。

核心要点

  • FIFO 用于跨时钟域或速率匹配:写快读慢时缓存数据

  • 深度公式:D ≥ (Wrate - Rrate) × Tburst,Tburst 是写突发时间

  • 空满标志:写指针和读指针比较,格雷码编码跨时钟

  • 深度太小会溢出(写满),太浪费 RAM

  • 单时钟 FIFO 用普通 RAM,跨时钟用异步 FIFO

屏幕显示 FIFO 读写时钟波形和空满标志,FPGA 开发板连逻辑分析仪

面试官:写时钟 100MHz 数据 8bit,读时钟 50MHz,写突发 1024 个数据,FIFO 要多深?

面试官考察点

这是必考题。面试官看你是否会现场算深度。重点听:写满多少、读走多少、差值。

回答思路

现场算:写 1024 个用多少时间,这段时间读走多少,差值就是深度。

参考回答

第一步,写 1024 个数据用多久。

写时钟 100MHz,写 1024 个数据用:

Tw = 1024 / 100MHz = 10.24μs

第二步,这段时间读走多少。

读时钟 50MHz,10.24μs 读:

Nread = 50MHz × 10.24μs = 512 个

第三步,FIFO 深度。

写完时 FIFO 里剩:

D = 1024 - 512 = 512 个

选标准深度 1024(512 不够,留余量)。

参数本例
写时钟100MHz
读时钟50MHz
突发长度1024
写时间10.24μs
读走512
需要深度≥512,选 1024

通用公式。

D ≥ (Wrate - Rrate) × Tburst,Wrate/Rrate 是单位时间数据量。

空满判断。

  • 满:写指针追上读指针(写指针比读指针多一圈);

  • 空:写指针等于读指针;

  • 跨时钟时指针用格雷码编码,打两拍同步。

注意。

  • 深度要留余量:计算值×1.5~2;

  • 满标志要在写满前一拍置位,否则写超一个;

  • 异步 FIFO 用双口 RAM,读写独立时钟。

面试官可能追问

追问 1:为什么深度不是写速率×时间?
因为读也在走,FIFO 里剩的是差值。写满瞬间不是 1024,是 1024-读走的。
追问 2:读写同频还要 FIFO 吗?
同频不用 FIFO,直接接。FIFO 是为了跨时钟或速率不匹配。
追问 3:FIFO 空了会怎样?
读空时读数据是旧值或不定。设计要让读在不空时读,用 empty 标志控制。
追问 4:为什么用格雷码?
指针跨时钟打两拍时,格雷码每次只变一位,不会拼出错位二进制。
追问 5:单时钟 FIFO 怎么设计?
单时钟读写同步,普通双口 RAM+读写指针,不需要格雷码。

常见失分表达

✗ 深度随便选 16 — 不算法,写快读慢会溢出丢数据。
✗ 深度 = 突发长度 — 没算读走多少,浪费 RAM。
✗ 跨时钟 FIFO 用二进制指针 — 跨时钟打两拍会拼出错位,用格雷码。

准备动作

1
现场算一次 FIFO 深度
2
写一个异步 FIFO(格雷码指针)
3
准备一个 FIFO 溢出丢数据的案例
4
了解 Xilinx FIFO IP 核配置

核心关键词

FIFO深度异步FIFO空满标志格雷码速率匹配双口RAM


声明:本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。仅供学习交流使用,不构成商业目的。版权归原作者所有,如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时删除。 侵权投诉

相关文章

多对差分信号等长配线公差怎么设定?信号完整性面试别只说"尽量等长"

2026-08-02 21:46:38

浪涌Surge怎么测试与整改?共模差模浪涌怎么防护?EMC工程师面试

2026-09-22 08:43:17

多路电源上下电时序怎么设计?电源工程师面试时序控制方案

2026-08-14 10:33:50

Smith圆图不是装饰:50Ω系统里,电抗为什么会让点沿曲线移动?

2026-10-24 11:44:05

PCB电源完整性PI怎么设计?电源平面分割与去耦网络怎么做?PCB工程师面试

2026-09-04 15:49:01