这些经典题目,你刷到过几个?
做 FPGA 的都知道一句话:
简历能不能过,面试能不能稳,很多时候就卡在这些"老题"上。
本文整理了一批 FPGA 岗位高频、经典、反复出现的面试题目 ,涵盖
数字电路 / Verilog / 时序 / 综合 / 工程实践 等核心方向,适合:
-
FPGA 校招 / 社招
-
笔试前集中刷题
-
面试前快速自检
如果这些题你基本都能答清楚,说明基础已经过线。
一、数字电路基础(必问)
1️⃣ 什么是时序电路?和组合逻辑的区别?
答:
-
组合逻辑:输出只与当前输入有关
-
时序逻辑:输出与**当前输入 + 历史状态(寄存器)**有关
FPGA 设计中,绝大多数模块都是时序逻辑。
2️⃣ D 触发器的作用是什么?
答:
在时钟沿到来时,对输入数据进行采样并保持,用于
-
数据存储
-
时序隔离
-
构建状态机
FPGA 内部的基本存储单元就是 D 触发器。
3️⃣ 建立时间和保持时间是什么?
答:
-
建立时间(Setup):时钟沿到来前,数据需要稳定的时间
-
保持时间(Hold):时钟沿到来后,数据需要继续稳定的时间
违反会导致亚稳态。
二、Verilog 语法与编码习惯
4️⃣ 阻塞赋值和非阻塞赋值的区别?
答:
-
=阻塞赋值:按顺序执行,常用于组合逻辑 -
<=非阻塞赋值:并行更新,必须用于时序逻辑
面试黄金原则:
always @(posedge clk) 中只能用
<=
5️⃣ always @(*) 有什么作用?
答:
自动包含所有右值信号,避免漏敏感信号导致锁存器推断。
6️⃣ 什么情况下会推断锁存器?
答:
-
组合逻辑中
-
if / case 没有覆盖所有条件
-
输出在某些分支下未赋值
锁存器在 FPGA 设计中通常是错误的结果。
三、时序与时钟相关(高频)
7️⃣ 什么是同步设计?
答:
所有时序逻辑由同一个时钟或已约束的时钟域 驱动,
是 FPGA 设计的基本原则。
8️⃣ 跨时钟域如何处理?
答:
-
单 bit 控制信号:两级触发器同步
-
多 bit 数据:
-
异步 FIFO
-
握手机制
-
直接跨域采样是严重设计错误。
9️⃣ 时钟抖动和时钟偏斜有什么区别?
答:
-
抖动(Jitter):时间上的不确定性
-
偏斜(Skew):同一时钟到达不同寄存器的时间差
都会影响时序裕量。
四、FSM(状态机)
🔟 状态机一般有哪几种写法?
答:
-
一段式
-
两段式(推荐)
-
三段式(工程最常用)
三段式:
状态寄存 → 状态跳转 → 输出逻辑
1️⃣1️⃣ Moore 和 Mealy 状态机区别?
答:
-
Moore:输出只与状态有关,稳定
-
Mealy:输出与状态 + 输入有关,响应快
FPGA 工程中 Moore 更常用。
五、综合与实现相关
1️⃣2️⃣ FPGA 中的 RAM 是如何实现的?
答:
-
小容量:寄存器
-
中等容量:LUT RAM
-
大容量:Block RAM
综合器会根据代码风格自动推断。
1️⃣3️⃣ 什么是资源利用率?
答:
FPGA 中 LUT、FF、BRAM、DSP 等资源的使用比例,
直接影响:
-
是否能放得下
-
是否还能扩展
1️⃣4️⃣ 为什么时序过不了?
答:
常见原因:
-
组合逻辑路径过长
-
时钟频率设置过高
-
跨时钟域处理不当
优化手段:
流水线、逻辑拆分、降低扇出
六、工程与经验题(拉开差距)
1️⃣5️⃣ FPGA 调试常用手段?
答:
-
仿真(功能正确性)
-
ILA / SignalTap(板级调试)
-
分模块验证
不会用 ILA 的 FPGA 工程师,基本不过关。
1️⃣6️⃣ 为什么"仿真能跑,板子不行"?
答:
-
复位不规范
-
时钟不稳定
-
跨时钟域问题
-
未约束 IO 或时序
板级问题 80% 是时序和复位。
七、总结
这些题目没有一个是"偏门",
但每一个都是真实面试中反复出现的内容。
如果你发现:
-
能看懂题
-
但说不清答案
-
或者只能模糊描述
那说明 基础还需要系统补一轮。
