From e07cfaa6d1bf979826999621b51238c5dbe05277 Mon Sep 17 00:00:00 2001 From: bowei Date: Mon, 10 Aug 2026 20:05:04 +0800 Subject: [PATCH] =?UTF-8?q?sync:=20WIN-BOWEI=202026-08-10=20fpga=5Fflash?= =?UTF-8?q?=20=E5=A2=9E=20Zynq=20BOOT.bin/QSPI=20=E8=84=9A=E6=9C=AC?= =?UTF-8?q?=EF=BC=8Crtl-ip-replace=20=E4=B8=8E=20sim-rtl-flow=20=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - fpga_flash: 新增 build_zynq_boot.py / program_zynq_qspi.py(bootgen + program_flash, 含备份、SHA-256/容量/marker 守卫);vivado_env.py 增 resolve_sdk_dir(SDK_ROOT/SDK_PATH); SKILL.md 补 Zynq 烧写流程,示例去掉写死的 D:\Xilinx\SDK\2018.1,改由 skills_env.md 解析。 - rtl-ip-replace: gen_ip.tcl / namespace_ip.py 更新。 - sim-rtl-flow: SKILL.md 与 run_sim_rtl_flow.py 更新。 Co-Authored-By: Claude Opus 5 (1M context) --- fpga_flash/SKILL.md | 159 ++++++++++++++++++++- fpga_flash/scripts/build_zynq_boot.py | 168 +++++++++++++++++++++++ fpga_flash/scripts/program_zynq_qspi.py | 166 ++++++++++++++++++++++ fpga_flash/scripts/vivado_env.py | 20 +++ rtl-ip-replace/scripts/gen_ip.tcl | 63 +++++++-- rtl-ip-replace/scripts/namespace_ip.py | 35 ++++- sim-rtl-flow/SKILL.md | 94 +++++++++++-- sim-rtl-flow/scripts/run_sim_rtl_flow.py | 38 ++++- 8 files changed, 712 insertions(+), 31 deletions(-) create mode 100644 fpga_flash/scripts/build_zynq_boot.py create mode 100644 fpga_flash/scripts/program_zynq_qspi.py diff --git a/fpga_flash/SKILL.md b/fpga_flash/SKILL.md index ad66db1..dc4549c 100644 --- a/fpga_flash/SKILL.md +++ b/fpga_flash/SKILL.md @@ -1,13 +1,13 @@ ---- +--- name: fpga_flash description: | - 烧写 Artix-7 系列 FPGA 的外部 Flash(SPI NOR Flash)。适用于 EMV7.1 等 Artix-7 板卡,支持 Micron mt25ql128 和 Winbond w25q128bv 两种 Flash 型号。 + 按开发板/器件架构选择正确的 Flash 固化方式。支持 EMV7.1 等 Artix-7 板卡的 MCS/cfgmem 流程,以及 HJX9009(XC7Z100/Zynq-7000)将 FSBL、PL bitstream、PS ELF 打包为 BOOT.bin 后写入双并行 QSPI 的流程。 当用户提到"烧写 flash"、"flash 编程"、"固化 bit 文件"、"下载到 flash"、"program flash"、"write flash"、"burn flash"、"Vivado flash"、"SPI flash 烧写"时,必须触发此 skill。 --- -# FPGA Flash 烧写流程(Artix-7 / EMV7.1) +# FPGA Flash 固化流程(按开发板路由) -本 skill 由 Claude **全自动执行**完整的 Flash 烧写流程。除了向用户确认必要信息外,所有操作(文件检查、CSV 修改、Vivado 命令执行、硬件编程)均由 Claude 直接完成,不要求用户手动执行任何命令。 +本 skill 由 Claude **全自动执行**完整的 Flash 固化流程。除了向用户确认必要信息外,所有操作(文件检查、备份、哈希/容量/内容守卫、工具调用、硬件编程)均由 Claude 直接完成,不要求用户手动执行任何命令。执行前必须先识别开发板与 FPGA/SoC 类型;不得把 Artix-7 的 `.mcs/cfgmem` 流程用于 Zynq,也不得把 Zynq 的 `BOOT.bin/program_flash` 流程用于普通 Artix-7。 --- @@ -34,6 +34,9 @@ scripts/ program_flash.py # 第四、五步:连接目标板并烧写 Flash step3_write_mcs.tcl # gen_mcs.py 使用的 Tcl 模板(勿手动修改) step4_5_program.tcl # program_flash.py 使用的 Tcl 模板(勿手动修改) + build_zynq_boot.py # Zynq:FSBL + bit + PS ELF 生成受保护的 BOOT.bin + program_zynq_qspi.py # Zynq:哈希/容量/marker 守卫后烧写并强制 verify + vivado_env.py # 解析 Vivado/SDK 工具路径 ``` **调用方式(Bash 工具):** @@ -41,10 +44,153 @@ scripts/ python "$USERPROFILE/.claude/skills/fpga_flash/scripts/