FPGA 下载与烧录全流程实战解析
FPGA 配置分为临时下载和永久烧录两种模式。临时下载用于调试,断电丢失;永久烧录将比特流写入外部 Flash 芯片实现上电自启。
一、为什么 FPGA 要'下载'两次?
FPGA 本质是一块超大规模的 SRAM 电路板,内部没有存储能力,所有逻辑配置都是靠上电时加载的一串'开关指令'(也就是比特流)来决定的。一旦断电,这些开关状态全归零。
| 类型 | 目标位置 | 是否掉电保存 | 用途 |
|---|---|---|---|
| JTAG 下载 | FPGA 内部 SRAM | 否 | 调试验证阶段 |
| Flash 烧录 | 外部 SPI Flash 芯片 | 是 | 产品固化部署 |
前者类似用 U 盘直接运行程序,后者则是把系统装进硬盘里开机自动启动。
二、第一步:通过 JTAG 把程序'临时'跑起来
1. 准备工作:软硬件都得在线
在动手前,请确认以下几点已经就绪:
- Vivado 已安装(推荐 2023.1 及以上版本)
- Xilinx USB Cable 驱动已正确安装(Windows 设备管理器中能看到'Xilinx JTAG Cable')
- 开发板供电正常(最好用外接电源,别靠 USB 口硬撑)
- JTAG 线连接无误(注意引脚方向,别反插)
如果 Vivado 打不开 Hardware Manager 或提示'no hardware found',90% 的问题出在这一步。
小贴士:如果你用的是 Digilent 下载器(比如 Nexys 系列常用),记得额外安装 Digilent Adept Runtime,否则可能无法识别。
2. 工程走到哪一步才能下载?
当你完成以下流程后,就可以准备下载了:
编写 HDL → 添加 XDC 约束(管脚 + 时钟) → 综合 (Synthesis) → 实现 (Implementation) → 生成比特流 (Generate Bitstream)
其中最关键的一步是 Generate Bitstream,它会输出一个 .bit 文件,这是 FPGA 能读懂的'二进制配置文件'。
注意:
.bit文件默认路径通常是./<project>.runs/impl_1/top.bit,名字取决于顶层模块名。
3. 打开 Hardware Manager,连上 FPGA
点击菜单栏 Open Hardware Manager → Open Target → Auto Connect
这时你会看到 JTAG 链上的设备被扫描出来,通常是你的 FPGA 芯片(比如 xc7a35t_0)。
右键选择 Program Device,选中刚才生成的 .bit 文件,点击'Program'。
成功标志:LED 开始闪烁、串口打印数据、ILA 抓到信号波形……
但这只是暂时的!只要断电,一切归零。
4. 为什么这个方式适合调试?
因为快!
改一行代码 → 重新生成 bit → 再下载,整个过程不到一分钟。你可以反复迭代功能,配合 ILA(集成逻辑分析仪)实时观测内部信号。
而且支持 Partial Reconfiguration —— 高级玩法来了:只更新部分逻辑而不影响其他模块运行,这对通信系统或图像处理流水线特别有用。
三、第二步:让程序'永久'住在 FPGA 里 —— Flash 烧录详解
现在你要问了:'我总不能每次演示都连电脑吧?能不能让它自己启动?'

