XT25W1GBSFIGA 基于 ISE iMPACT 的固化烧录教程
编制日期 2026-09-21 | 版本号 Rev 1.0
面向 Xilinx 7 系列 / Spartan-6 FPGA 外挂 XTX 1 Gbit SPI NOR Flash 的间接编程(Indirect Programming)操作规范 · 依据《ISE 软件 iMPACT 固化教程》改编扩充 · 2026-09
一句话结论:XT25W1GBSFIGA 不在 Xilinx 官方器件白名单里,iMPACT 既认不出它的 JEDEC ID、也没有 1 Gb 的容量档位。要让 iMPACT 正常工作只有一条路:先设环境变量 XIL_IMPACT_SKIPIDCODECHECK=1 绕开 ID 校验,再在「Select Attached SPI/BPI」里按容量降档选同体系的美光 N25Q256(可写前 32 MB)或 N25Q128(可写前 16 MB,最稳)。超过 32 MB 的部分 iMPACT 无能为力,必须换 Vivado 或专用烧录器。
这份文档解决什么
- Vivado Hardware Manager 因
Invalid device ID拒绝烧录 XT25W1GBSFIGA 时,如何改走 ISE iMPACT。 - iMPACT 弹
ID Check failed/ 找不到对应型号时,应该选哪个型号、为什么。 - 1 Gb(128 MB)器件用 iMPACT 只能写前 32 MB,这个边界怎么理解、怎么规避。
- 烧完以后怎么确认「真的固化成功了」,以及常见失败现象的定位路径。
不适用于
- 需要把 128 MB 全片写满的场景(iMPACT 做不到,见 第 4 章 方案三)。
- UltraScale / UltraScale+ / Zynq-7000 的 QSPI 启动配置(那是 Vivado 的领地)。
- 把 XT25W1GB 当作文件系统或大容量数据存储来量产烧录(应走离线烧录器)。
1. 适用范围与准备清单
先把「这套方法成立的前提」钉死——iMPACT 走的是间接编程:它不直接碰 Flash,而是往 FPGA 里塞一段桥接位流,借 FPGA 的 I/O 模拟 SPI 时序去擦写 XT25W1GB。理解这一点,后面所有的现象(慢、容量受限、依赖 FPGA 型号)就都能解释了。
1.1 软件 / 硬件 / 文件准备
| 类别 | 项目 | 要求与说明 |
|---|---|---|
| 软件 | ISE Design Suite 14.7 | 必须使用完整版 Xilinx_ISE_DS_Win_14.7;仅装 LabTools 也可,但需含 iMPACT。 |
| 软件 | Vivado(配套) | 与 FPGA 器件系列匹配的版本,用于生成 .bit 与 .mcs。 |
| 软件 | 下载器驱动 | ISE 自带 Platform Cable 驱动;Digilent 下载器需装 Adept / Vivado Cable Driver。 |
| 硬件 | FPGA JTAG 下载器 | Platform Cable USB II、Digilent HS2/HS3、或兼容的国产下载器。 |
| 硬件 | 目标板 | FPGA 与 XT25W1GBSFIGA 的 SPI 走线已连通,且 VCCO_0(配置 Bank)电压与 Flash VCC 一致。 |
| 文件 | XXX.bit | Vivado 综合实现后生成,仅用于让 iMPACT 识别 FPGA 型号。 |
| 文件 | XXX.mcs | 由 .bit 经 write_cfgmem 转换而来,这才是写进 Flash 的数据。见第 8 章。 |
生成 .mcs 时填的 Flash 容量,必须和 iMPACT 里选的型号容量一致(例如 iMPACT 选 N25Q256,write_cfgmem 就得按 32 MB 生成)。两者不一致会直接报 size 超出或校验失败。详见 第 8 章。
1.2 硬件侧的三个硬前提
- 电压同一轨:XT25W1GBSFIGA 是 1.65~3.6 V 宽压器件,但上电时它必须和 FPGA 配置 Bank(VCCO_0)在同一电平。3.3 V 系统就都跑 3.3 V,1.8 V 系统就都跑 1.8 V。
- SPI 走线完整:至少
CS#、SCLK、SI/IO0、SO/IO1四根线要通;若后续要 x4 启动,WP#/IO2、HOLD#/IO3也必须接到 FPGA。 - Flash 未被锁死:确认状态寄存器的块保护位(BP 位)与
WP#引脚没有把整片写保护;被保护时 iMPACT 会在 Erase 阶段就失败。
2. 器件速查:XT25W1GBSFIGA
烧录参数(页大小、擦除粒度、容量、地址模式)全部由 Flash 本身决定。这一章把需要用到的参数一次列全,后面选型号、算地址都从这里取数。
2.1 关键参数
| 参数 | 数值 | 对烧录的影响 |
|---|---|---|
| 容量 | 1 Gbit = 128 MB(4 × 32 MB) | iMPACT 无此档位,必须降档选型号,可写窗口被限制在前 32 MB。 |
| 页大小 | 256 Byte | 决定页编程(Page Program)的分包粒度;iMPACT 按所选型号的页大小分包,256 B 与 N25Q 系列一致。 |
| 扇区 / 块 | 4 KB 扇区;32 KB / 64 KB 块 | N25Q 体系同样支持 4 KB/32 KB/64 KB 粒度,算法可复用。 |
| 地址模式 | 3 字节 / 4 字节可切换 | 16 MB(0x1000000)以上必须切到 4 字节地址,这是 32 MB 以上区域的隐患点。 |
| 工作电压 | 1.65 ~ 3.6 V | 宽压:3.3 V 与 1.8 V 系统都能直接上,但必须与 FPGA 配置 Bank 同轨。 |
| 最高时钟 | 104 MHz(标准/双/四线) | iMPACT 走 JTAG 桥,实际 SPI 时钟远低于此值,不是瓶颈。 |
| 页编程时间 | 0.3 ms(典型) | 128 MB 全片写满理论下限约 26 分钟;实际受 JTAG 桥速率限制更慢。 |
| 块擦除时间 | 0.38 s @32 KB / 0.52 s @64 KB | 擦除是耗时大头。 |
| 整片擦除时间 | 300 s(典型) | 这解释了为什么 iMPACT 会卡在 Erase 很久——若勾选了整片擦除,等 5 分钟以上是正常的。 |
| 擦写寿命 | 10 万次 / 数据保持 10 年 | 量产反复烧录无需担心,但避免无意义的全片擦除。 |
| 封装 | SOP16-300mil(宽体,非 SOP8) | 硬件替换时注意与 SOP8-208mil 器件不兼容。 |
来源:LCSC C42162957 公开引脚图(引自 XTX 原厂 Datasheet 的引脚配置图)
上图取自公开渠道的引脚配置图。投板、改板前务必用 XTX 原厂最新版 Datasheet 复核一遍,尤其是 RESET#(3 脚)与 HOLD#/IO3(1 脚)——不同代次、不同容量的宽体 SOP16 封装,这两脚的定义存在差异,接错会直接导致 Flash 一直处于复位或保持状态,iMPACT 读到全 0xFF 或全 0x00。
2.2 与美光 / 华邦同类器件的对应关系
选型替代与 iMPACT 型号映射都绕不开这张表。XT25W1GBSFIGA 的封装与命令体系与美光 1 Gb 器件对齐,这正是「降档选 N25Q 系列」能够成立的基础。
| 对比项 | XT25W1GBSFIGA(XTX) | MT25QL01G(Micron) | 对 iMPACT 选型的意义 |
|---|---|---|---|
| 容量 | 1 Gbit / 128 MB | 1 Gbit / 128 MB | 二者同档,但 iMPACT 都没有 1 Gb 档位可选。 |
| 封装 | SOP16-300mil | 16-SOIC(SOP2) | 引脚级兼容,硬件可直接替换评估。 |
| 电压 | 1.65 ~ 3.6 V | 2.7 ~ 3.6 V(另有 1.8 V 版本) | XTX 为宽压,1.8 V 系统更友好。 |
| 命令体系 | 标准 SPI 指令集 | N25Q 指令集 | 页编程 / 扇区擦除 / 读 ID 指令一致,算法可套用。 |
| iMPACT 可选项 | 无 | 无(需选 N25Qxxx 等效) | 这正是本教程要解决的核心矛盾。 |
3. 问题本质:为何 Vivado 与 iMPACT 都烧不进去
两台工具卡住的原因不一样,必须分开看:Vivado 卡在器件 ID 白名单,iMPACT 卡在 ID 白名单 + 容量档位。看清楚各自的机制,才知道该绕什么。
3.1 机制一:器件 ID 白名单
Xilinx 工具在做间接编程前,会先通过桥接位流对 Flash 发 0x9F(Read JEDEC ID),把返回的 Manufacturer ID / Memory Type / Capacity 与内建白名单比对。XT25W1GBSFIGA 是 XTX 的料号,自然不在表里,于是:
- Vivado Hardware Manager 报
ERROR: [Labtools 27-3165] Invalid device ID detected; - iMPACT 报
ID Check failed或直接提示找不到匹配器件。
XT25W1GB 的指令集与美光 N25Q 体系一致,电气特性也完全满足 7 系列的要求——工具拒绝它仅仅因为 ID 不在认证名单里。因此「绕过 ID 校验 + 套用同体系型号的算法」是一条被 AMD 官方与多家原厂应用笔记共同认可的做法(见 附录 12.2)。
3.2 机制二:iMPACT 的容量天花板(更硬的墙)
即使绕过了 ID 校验,还有第二道限制:iMPACT 14.7 的 SPI PROM 下拉列表里根本没有 1 Gb 档位。这份支持矩阵来自 Xilinx 14.7 官方文档:
| 厂商 | 系列 | 支持容量 | 适用 FPGA |
|---|---|---|---|
| Micron (Numonyx) | N25Q 3.3V | 32 Mb ~ 256 Mb | Kintex-7、Artix-7 |
| Micron (Numonyx) | N25Q 1.8V | 32 Mb ~ 256 Mb | Kintex-7、Virtex-7、Artix-7 |
| Winbond | W25Q 各版本 | 8 Mb ~ 128 Mb | Kintex-7、Virtex-7、Artix-7 |
| Spansion | S25FLxxP | 32 Mb ~ 256 Mb | Kintex-7 |
| Spansion | S25FLxxS | 128 / 256 / 512 Mb | Kintex-7、Virtex-7、Artix-7 |
| Micron (Numonyx) | M25P / M25PE / M45PE | 512 kb ~ 128 Mb | Spartan-3E/3A/6、Virtex-5/6 |
| —— | 1 Gb / 1024 Mb | 无对应条目 | —— |
pim_r_supported_spi_bpi_proms 文档为准。
下拉列表里最大的美光条目是 N25Q256(256 Mb = 32 MB)。这意味着无论怎么选,iMPACT 最多只能操作 XT25W1GBSFIGA 的前 32 MB,剩下的 96 MB 完全够不着。这不是配置问题,是工具能力的上限。
如果项目需要用到 32 MB 以外的空间,请直接看 第 4 章 的方案三。
4. 方案总览与选型决策
按「待写镜像落在哪个容量区间」选路,三条路径的边界是清晰的。
4.1 三条路径对比
| # | 路径 | 可写范围 | 优点 | 代价 / 限制 |
|---|---|---|---|---|
| 方案一 | iMPACT + N25Q128 | 0 ~ 16 MB | 全程 3 字节地址,不涉及地址模式切换;兼容性最好,成功率最高。 | 16 MB 以上空间浪费(对 1 Gb 器件而言)。 |
| 方案二 | iMPACT + N25Q256 | 0 ~ 32 MB | 可写窗口翻倍,能容纳超大位流或双镜像(MultiBoot)。 | 跨越 16 MB 边界需处理 4 字节地址;iMPACT 对此的行为无官方保证,实测存在校验失败案例。 |
| 方案三 | Vivado / 专用烧录器 | 0 ~ 128 MB 全片 | 唯一能用满 1 Gb 容量的路径;Vivado 支持 mt25ql01g 等 1 Gb 配置。 | 需要 Vivado 2020.1 以上;或额外采购支持 XT25W1GB 的离线/在线烧录器。 |
SPI_32BIT_ADDR。直接看 Vivado 生成的 .bit 文件大小:字节数 ÷ 1024 ÷ 1024 ≈ MB。例如 11 MB 的位流 → 选 N25Q128;25 MB → 只能选 N25Q256 并走方案二。
若 .bit 尚未生成,也可用 Vivado Tcl 预估:get_property STATS.BITSTREAM_SIZE [current_design] 会给出比特流字节数。