--- name: fpga_flash description: | 按开发板/器件架构选择正确的 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 固化流程(按开发板路由) 本 skill 由 Claude **全自动执行**完整的 Flash 固化流程。除了向用户确认必要信息外,所有操作(文件检查、备份、哈希/容量/内容守卫、工具调用、硬件编程)均由 Claude 直接完成,不要求用户手动执行任何命令。执行前必须先识别开发板与 FPGA/SoC 类型;不得把 Artix-7 的 `.mcs/cfgmem` 流程用于 Zynq,也不得把 Zynq 的 `BOOT.bin/program_flash` 流程用于普通 Artix-7。 --- ## 执行规范 **自动执行原则:** - 每个需要调用 Vivado 的步骤,Claude 通过 Bash 工具调用 skill `scripts/` 目录下的 Python 脚本 - **禁止**在用户工程目录或系统临时目录(`%TEMP%`、`/tmp`)下创建任何脚本文件 - 所有可执行脚本已预置在 skill 目录的 `scripts/` 子目录中,Claude 只需传入正确的参数调用 **定位 skill 脚本目录:** Claude 在执行前需先确认脚本的完整路径。使用 Glob 工具查找: ``` C:/Users/<当前用户>/.claude/skills/fpga_flash/scripts/gen_mcs.py ``` 或直接使用默认路径:`%USERPROFILE%/.claude/skills/fpga_flash/scripts/` **scripts/ 目录内容:** ``` scripts/ check_flash_csv.py # 第一步:检查/更新 Vivado Flash 器件表 gen_mcs.py # 第三步:生成 .mcs 文件 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 工具):** ```bash python "$USERPROFILE/.claude/skills/fpga_flash/scripts/