FPGA FIFO深度怎么计算?读写速率不同时要多深?FPGA面试

浏览量:330
时间: 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


声明:本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。仅供学习交流使用,不构成商业目的。版权归原作者所有,如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时删除。侵权投诉
相关推荐HOT
FPGA跨时钟域信号怎么处理?面试别只回答“打两拍”

题库分类:FPGA设计 适合经验:0-3年、3-5年 难度:中高级 题型:技术基础与项目追问题 面试... 详情>>

2026-07-29 13:56:32
FPGA建立时间和保持时间违例怎么优化 - FPGA设计面试题详解

分类:FPGA设计经验级别:2-5年经验难度:中高级题型:技术分析题本文概述:建立时间和保持时间是FPGA时序设计的基础概念,也是面试必考题。核心结论是:建立时... 详情>>

2026-08-18 21:09:04
高速PCB仿真面试:眼图怎么看?眼高、眼宽和抖动分别反映什么问题?

PCB仿真 · 求职面试高频问答如果面试官拿一张高速串行链路眼图问“能不能过”,只说眼睛越大越好不够。必须区分噪声裕量、采样时间窗口与特定接口的判定门限。01 ... 详情>>

2026-11-01 14:49:46
ESD静电放电测试不过怎么整改?EMC工程师面试从泄放路径讲到防护器件配合

EMC电磁兼容中高级技术基础题本文概述ESD静电放电整改是EMC工程师最常遇到的面试题之一。面试中不能只回答“加个TVS”,要讲清ESD的能量特性(接触放电/空... 详情>>

2026-08-31 14:34:00
BGA扇出与过孔方案怎么选?PCB面试别只回答“看间距”

题库分类:PCB设计适合经验:1—5年难度:中高级题型:布局场景题 + 工艺取舍题面试题拿到一颗高密度BGA器件后,你会怎样决定使用普通通孔、盲埋孔、微孔还是盘... 详情>>

2026-07-30 21:35:02
开班信息