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


七、总结

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

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

如果你发现:

  • 能看懂题

  • 但说不清答案

  • 或者只能模糊描述

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

相关推荐
蒹葭玉树18 小时前
【C++上岸】C++常见面试题目--操作系统篇(第二十八期)
linux·c++·面试
User_芊芊君子18 小时前
【LeetCode经典题解】搞定二叉树最近公共祖先:递归法+栈存路径法,附代码实现
算法·leetcode·职场和发展
熬夜造bug18 小时前
LeetCode Hot100 刷题路线(Python版)
算法·leetcode·职场和发展
多米Domi01121 小时前
0x3f 第48天 面向实习的八股背诵第五天 + 堆一题 背了JUC的题,java.util.Concurrency
开发语言·数据结构·python·算法·leetcode·面试
测试者家园1 天前
测试用例智能生成:是效率革命,还是“垃圾进,垃圾出”的新挑战?
人工智能·职场和发展·测试用例·测试策略·质量效能·智能化测试·用例设计
win x1 天前
JavaSE(基础)高频面试点及 知识点
java·面试·职场和发展
编程彩机1 天前
互联网大厂Java面试:从分布式缓存到消息队列的技术场景解析
java·redis·面试·kafka·消息队列·微服务架构·分布式缓存
qq_小单车1 天前
xilinx-DNA
fpga开发·xilinx
xiaoye-duck1 天前
C++ string 底层原理深度解析 + 模拟实现(上)——面试 / 开发都适用
c++·面试·stl
小旭95271 天前
Java 反射详解
java·开发语言·jvm·面试·intellij-idea