FPGA配置与SPI Flash烧录怎么理解?bitstream与加载流程怎么做?FPGA面试

浏览量:237
时间: 2026-09-10 21:42:01
FPGA设计中级技术基础题

FPGA开发板SPI Flash配置烧录调试

本文概述

FPGA配置(上电加载bitstream)是FPGA面试的基础必考题,很多人只会在工具里点下载却没想过原理。面试官想听的不是“点Program”,而是你懂不懂FPGA为什么需要配置(SRAM架构掉电丢失)、配置文件的种类(bit/hex/bin)、配置模式(JTAG、主动SPI、被动配置)、以及配置流程(上电→模式选择→加载→DONE)。本文从“FPGA是SRAM架构”讲起,讲为什么需要配置、bitstream是什么、配置模式(JTAG调试、SPI Flash主动加载、被动模式)、SPI Flash烧录流程(生成bin、烧录、上电加载)、以及配置时序和常见问题(DONE不拉高、加载失败排查),强调模式选择按产品应用定,不套固定值。

核心要点

  • FPGA基于SRAM存储配置,掉电丢失,上电必须从外部加载bitstream

  • 配置文件:bit(JTAG调试)、bin/hex(烧Flash用)

  • 配置模式:JTAG(在线调试)、主动SPI(FPGA自己从Flash读)、被动模式(外部控制)

  • SPI烧录:生成bin→通过JTAG烧进Flash→上电FPGA主动加载

  • 配置完成标志:DONE信号拉高,INIT_B状态指示

  • 常见问题:DONE不拉高、加载失败→查模式引脚、时钟、Flash、bit格式

FPGA的配置(加载)流程是怎样的?bit文件怎么烧到SPI Flash?有哪些配置模式?

面试官考察点

考察点拆解

面试官问FPGA配置,重点考察:第一,你懂不懂FPGA为什么需要配置(SRAM架构);第二,你懂不懂配置文件和配置模式;第三,你懂不懂SPI Flash烧录和上电加载流程;第四,你懂不懂配置失败的排查。

追问方向:为什么掉电丢失、几种配置模式、怎么烧Flash、DONE信号。

回答思路

答题主线

建议按“为什么需要配置 → 配置文件 → 配置模式 → 烧录与加载流程 → 问题排查”来答,从原理到操作。

  1. 先讲原因:SRAM架构。

  2. 讲文件:bit/bin。

  3. 讲模式:JTAG/主动SPI。

  4. 讲流程排查:烧录、DONE。

参考回答

我先讲FPGA为什么需要配置,再讲配置流程。

第一,为什么需要配置。FPGA(如Xilinx/Intel器件)的配置存储是SRAM架构:上电时逻辑是空的,掉电后配置丢失。所以每次上电必须从外部存储器(SPI Flash)或主机加载bitstream(配置数据流),把电路“编程”进FPGA。这和MCU的Flash运行程序不一样。

第二,配置文件。综合实现后生成:bit文件(在线调试/JTAG加载用);bin/hex文件(烧录到SPI Flash用,去掉bit的头信息)。量产板卡上电从Flash自动加载。

第三,配置模式。

  • JTAG模式:通过下载器直接在线配置(调试用,不保存,掉电丢失);

  • 主动SPI模式:FPGA上电后自己从SPI Flash读取配置(产品量产常用,掉电重上电自动加载);

  • 被动模式:由外部主机(如MCU/CPU)控制加载(灵活,由系统管理加载时机)。

第四,SPI Flash烧录与加载流程。把生成的bin文件通过JTAG下载器烧进SPI Flash(一次编程,多次上电加载);上电后FPGA根据模式引脚选择主动SPI,从Flash读配置数据,配置完成后DONE信号拉高,用户逻辑开始运行。

第五,配置失败排查。DONE不拉高/INIT_B异常:查模式引脚设置、配置时钟、Flash型号和连接、bit/bin格式是否正确、供电是否正常。模式选择按产品(调试/量产)和系统架构定。

面试官可能追问

追问 1:FPGA为什么掉电后配置会丢失?
FPGA的配置存储基于SRAM单元(易失性存储):SRAM靠电源保持状态,掉电即丢失。所以FPGA上电后需要重新加载bitstream才能工作。这和用Flash存程序/配置的MCU不同,也是FPGA产品必须配外部配置存储器的原因。
追问 2:bit文件和bin文件有什么区别?
bit文件是完整配置数据流(含文件头信息),主要给JTAG在线加载/调试用;bin文件是从bit转换出的纯配置数据(去掉头),用于烧录到SPI Flash,Flash容量占用更小。量产烧Flash用bin(或hex),在线调试用bit。
追问 3:主动SPI配置是怎么工作的?
FPGA上电后,根据模式引脚(如M[2:0])选择主动SPI模式,FPGA作为SPI主设备自己产生时钟,从外部SPI Flash按地址读出配置数据,完成内部配置,配置完成后拉高DONE。整个过程FPGA自动完成,不需要外部主机参与,适合产品上电自动启动的场景。
追问 4:配置失败怎么排查?
看DONE和INIT_B状态:1)DONE不拉高说明配置未完成——查模式引脚是否接对、配置时钟、Flash与FPGA的SPI连接(片选/时钟/数据);2)查Flash是否烧录正确(读回校验);3)查bin格式和Flash型号匹配;4)查供电(配置期间电压)。用下载器读状态寄存器定位。
追问 5:能不能不烧Flash,每次由主机加载?
可以。用被动配置模式(如BPI/从SPI/SelectMAP),外部主机(MCU/CPU)在上电后把配置数据推给FPGA,FPGA按主机节奏完成加载。好处:配置可灵活更换(系统升级)、省Flash或与系统共用;缺点:依赖主机和加载时序,主机要管理配置流程。常用在系统里已有主CPU的场景。

常见失分表达

✗ “FPGA配置是存在芯片里的” — SRAM架构掉电丢失,需外部加载。
✗ “烧Flash用bit文件” — 烧Flash用bin/hex,bit用于JTAG在线。
✗ “DONE不拉高是FPGA坏了” — 先查模式引脚、Flash、时钟和配置流程。
✗ “上电FPGA自己就有逻辑” — 上电是空的,必须加载配置。
✗ “配置模式随便选” — 按调试/量产/系统架构选JTAG、主动SPI或被动。

准备动作

1
在开发板上分别用JTAG在线配置和SPI Flash烧录,观察DONE
2
用工具生成bin文件,对比bit和bin大小
3
读FPGA配置手册:模式引脚、配置时序
4
模拟配置失败,用状态寄存器定位问题

核心关键词

FPGA配置bitstreamSPI FlashJTAG主动SPI被动配置DONEINIT_B烧录


声明:本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。仅供学习交流使用,不构成商业目的。版权归原作者所有,如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时删除。侵权投诉
相关推荐HOT
请解释PCB(印刷电路板)是什么,并简述其工作原理

PCB是印刷电路板(Printed Circuit Board),它是一种将电子元件、导线和其他电路组件布局在预定位置并通过导线连接的基板。PCB的工作原理是利... 详情>>

2023-09-09 15:31:00
PCB金手指与板边连接器怎么设计?斜边倒角、镀金厚度与插拔可靠性怎么做?PCB工程师面试

PCB设计中高级技术基础题本文概述金手指是板卡与主板连接的板边接口,设计不当会影响插拔可靠性和寿命,是PCB面试的进阶题。面试官想听的不是“金手指就是镀金”,而... 详情>>

2026-09-10 21:39:19
嵌入式系统有哪几个组成部分?

嵌入式系统通常由嵌入式处理机、嵌入式外围设备、嵌入式操作系统和嵌入式应用软件等几大部分组成。一个嵌入式系统装置一般都由嵌入式计算机系统和执行装置 组成,嵌入式计... 详情>>

2024-10-16 16:25:19
FPGA状态机怎么写?一段式两段式三段式区别?状态编码怎么选?FPGA面试

一句话答案状态机分一段式(时序+组合混写)、两段式(时序状态寄存器+组合输出)、三段式(时序状态寄存器+组合次态+时序输出);推荐三段式,输出寄存器化无毛刺;状... 详情>>

2026-09-23 16:24:13
复位电路怎么设计?上电复位、按键复位与看门狗怎么做?硬件工程师面试

一句话答案复位电路分三类:上电复位(RC 或专用复位芯片)、按键复位(RC+按键对地)、看门狗复位(外部看门狗芯片或 MCU 内部);复位脚要加 100nF 滤... 详情>>

2026-09-16 10:03:40
开班信息