FPGA 面试核心知识点梳理(一)
FPGA 岗位面试通常关注基础功底、项目经验及问题解决能力。以下整理了部分高频考点,涵盖基础概念、架构设计、时序分析及跨时钟域处理等内容,供求职者系统复习。
一、FPGA 基础概念
1. 什么是 FPGA?与 CPLD、ASIC 的核心区别是什么?
FPGA(现场可编程门阵列)是一种基于可编程逻辑单元(CLB)、可编程互连资源(PI)、I/O 接口和嵌入式资源的半导体器件。它可以通过硬件描述语言(HDL)编程实现任意数字逻辑功能,属于'现场可编程'器件。
核心区别如下:
- FPGA:基于 SRAM 工艺,可编程性强、灵活性高,可反复擦写。适合快速原型验证、小批量量产,功耗中等,成本随规模上升。
- CPLD:基于 EEPROM/Flash 工艺,集成度低、逻辑资源少,不可反复擦写或次数有限。功耗低、延迟小,适合简单逻辑控制。
- ASIC:专用集成电路,定制化设计,集成度高、功耗低、性能最优,但不可编程。研发周期长、成本高,适合大批量量产。
2. FPGA 的基本架构包括哪些部分?各部分的作用是什么?
核心架构主要包括四部分,不同厂商(如 Xilinx、Intel)命名略有差异,但功能一致:
- 可编程逻辑块(CLB):FPGA 的核心,由查找表(LUT)、触发器(FF)、多路选择器组成,用于实现各种组合逻辑和时序逻辑。
- 可编程互连资源(PI):包括布线资源、开关矩阵,用于连接各个 CLB、I/O 模块和嵌入式资源,实现信号的传输。
- I/O 接口模块(IOB):位于 FPGA 芯片边缘,负责 FPGA 与外部器件(如 CPU、DDR、ADC/DAC)的信号交互,支持多种电平标准(如 LVCMOS、LVDS、SSTL)。
- 嵌入式资源:集成在 FPGA 内部的辅助资源,包括 PLL(锁相环,用于时钟倍频/分频、相位调整)、DSP 切片(用于高速数字信号处理)、Block RAM(块 RAM,用于存储数据)。
3. FPGA 的配置方式有哪些?各适合什么场景?
FPGA 的配置方式核心分为「主动配置」和「被动配置」。
- 主动配置(FPGA 主动读取配置文件):
- 配置芯片:如 Xilinx 的 SPI Flash、Intel 的 EPC 系列。最常用,上电后 FPGA 自动读取配置芯片中的 bitstream,适合量产产品,掉电后配置信息不丢失。
- 并行配置:配置速度快,适合对配置时间要求高的场景,但布线复杂、成本略高。
- 被动配置(外部控制器主动向 FPGA 写入配置文件):
- JTAG 配置:通过 JTAG 接口(TCK、TMS、TDI、TDO)配置,主要用于调试、开发阶段,方便快速下载 bitstream。
- 串口/USB 配置:通过 UART、USB 接口由 CPU 或电脑写入配置文件,适合调试或特殊场景。
- Slave Serial 配置:由外部控制器(如 MCU)通过串行信号控制配置,适合小型系统、低功耗场景。
4. 什么是 LUT?LUT 的工作原理是什么?常见的 LUT 有几种?
LUT(查找表)是 FPGA 中实现组合逻辑的核心单元,本质是一个基于 SRAM 的'真值表缓存器'。
工作原理:LUT 的输入是组合逻辑的输入变量,输出是对应的逻辑结果。预先将输入变量所有可能的组合(真值表)存储在 SRAM 中,当输入信号到来时,LUT 根据输入值'查找'对应的输出结果,实现组合逻辑功能。
常见类型:
- 4 输入 LUT:可实现任意 4 变量的组合逻辑(2^4=16 种真值表组合)。
- 5 输入 LUT:可实现任意 5 变量的组合逻辑(2^5=32 种组合),部分高端 FPGA 采用。
- :Xilinx 7 系列及以上 FPGA 的主流配置,可实现任意 6 变量组合逻辑,灵活性更高,还可拆分为两个 4 输入 LUT 使用。

