跳转到内容
新建笔记

比特流、配置与启动

flowchart LR
PC["Vivado / 编程器"] -->|"JTAG"| FPGA["FPGA 配置存储器<br/>断电丢失"]
FLASH["板载配置 Flash<br/>断电保留"] -->|"上电启动接口"| FPGA

SRAM 型 FPGA 的配置存储器断电后丢失。JTAG 下载适合开发调试;产品上电自启动通常把配置镜像写入外部非易失存储,由模式引脚选择 SPI、BPI 等启动方式。

文件常见用途说明
.bitVivado/JTAG 直接配置带 Vivado 头信息的配置数据容器
.binBootloader 或配置存储器原始二进制配置数据,不等同于“MCU 指令”
.mcs编程配置 FlashIntel HEX 文本容器,可携带地址信息

具体格式、接口宽度和生成选项随器件系列与启动方案变化,必须以目标器件配置指南和板上 Flash 型号为准。这里主要讨论 Vivado/7 系列配置流程;带处理器的 SoC 启动镜像可能还包含引导程序、处理系统软件和其他分区,不能把其整个 .bin 文件都当作纯 FPGA 配置数据。

  1. 确认 FPGA 精确料号、板上 Flash 精确型号、容量、电压和连接宽度。
  2. 确认模式引脚、启动时钟、SPI x1/x2/x4 能力和 bitstream 配置属性一致。
  3. 估算镜像容量和启动时间,不套用其他板卡的固定值。
  4. 先通过 JTAG 验证实现,再生成配置存储器镜像。
  5. 烧写后断电重启验证,不能只看“Program succeeded”。

远程升级不只是“把新 bitstream 写入 Flash”。完整方案至少需要:

  • 不可覆盖或受保护的 golden/recovery 镜像。
  • 新镜像长度、版本、目标器件和完整性/真实性校验。
  • 写入非活动区域,校验成功后再切换启动指针。
  • 断电中断保护、启动 watchdog、失败回退和升级日志。
  • 若使用 MultiBoot/ICAP,严格按器件指南发送 WBSTAR、IPROG 等配置命令。

配置镜像可能包含产品逻辑和密钥,量产时还要评估加密、认证、密钥生命周期和读回保护。