FPGA 经典面试题目及答案汇总

这些经典题目,你刷到过几个?

做 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% 是时序和复位


七、总结

这些题目没有一个是"偏门",

每一个都是真实面试中反复出现的内容

如果你发现:

  • 能看懂题

  • 但说不清答案

  • 或者只能模糊描述

那说明 基础还需要系统补一轮

相关推荐
_饭团26 分钟前
字符串函数全解析:12 种核心函数的使用与底层模拟实现
c语言·开发语言·学习·考研·面试·蓝桥杯
想吃火锅100526 分钟前
【leetcode】105. 从前序与中序遍历序列构造二叉树
算法·leetcode·职场和发展
前端摸鱼匠39 分钟前
面试题4:多头注意力(MHA)相比单头注意力的优势是什么?Head数如何影响模型?
人工智能·ai·面试·职场和发展·求职招聘
呆瑜nuage1 小时前
【复习系列】高频C/C++库函数手写实现指南与自定义类型的理解指南
c语言·c++·面试
li星野1 小时前
C++面试真题分享20260320
java·c++·面试
_日拱一卒2 小时前
LeetCode:移动零
算法·leetcode·职场和发展
_日拱一卒2 小时前
LeetCode:字母异位词分组
算法·leetcode·职场和发展
Morwit3 小时前
*【力扣hot100】 215. 数组中的第K个最大元素
数据结构·c++·算法·leetcode·职场和发展
独自破碎E3 小时前
【面试真题拆解】Spring事务机制
java·spring·面试
程序员爱钓鱼3 小时前
Go PDF处理利器: github.com/pdfcpu/pdfcpu 深度指南
后端·面试·go