원클릭으로
axion-hdl
当用户想要使用 axion-hdl 从 YAML 或 HDL 注释生成 AXI4-Lite 寄存器接口,或使用 axion-hdl GUI 模式的时候,使用该技能。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
当用户想要使用 axion-hdl 从 YAML 或 HDL 注释生成 AXI4-Lite 寄存器接口,或使用 axion-hdl GUI 模式的时候,使用该技能。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
| name | axion-hdl |
| description | 当用户想要使用 axion-hdl 从 YAML 或 HDL 注释生成 AXI4-Lite 寄存器接口,或使用 axion-hdl GUI 模式的时候,使用该技能。 |
pip list + grep 查看是否已安装,或直接执行 axion -h 测试是否报错@axion 注释本指南将带您完成 Axion-HDL 的安装,并帮助您创建第一个寄存器接口。
Axion-HDL 可从 PyPI 获取:
pip install axion-hdl[gui]
您可以在 YAML/TOML 文件中定义寄存器,也可以直接在 VHDL/SystemVerilog 源代码中使用 @axion 注释来定义。
方式 A — YAML 文件 led_blinker.yaml:
module: led_blinker
base_addr: "0x0000"
registers:
- name: control
addr: "0x00"
access: RW
width: 32
description: "LED control register"
- name: led_state
addr: "0x04"
access: RO
width: 32
description: "Current LED state"
- name: period_ms
addr: "0x08"
access: RW
width: 32
default: 500
description: "Blink period in milliseconds"
方式 B — TOML 文件 led_blinker.toml:
module = "led_blinker"
base_addr = "0x0000"
[[registers]]
name = "control"
addr = "0x00"
access = "RW"
width = 32
description = "LED control register"
[[registers]]
name = "led_state"
addr = "0x04"
access = "RO"
width = 32
description = "Current LED state"
[[registers]]
name = "period_ms"
addr = "0x08"
access = "RW"
width = 32
default = 500
description = "Blink period in milliseconds"
方式 C — SystemVerilog 源代码 led_blinker.sv:
module led_blinker (
input logic clk
);
logic [31:0] control; // @axion RW DESC="LED control register"
logic [31:0] led_state; // @axion RO DESC="Current LED state"
logic [31:0] period_ms; // @axion RW DEFAULT=500 DESC="Blink period in milliseconds"
endmodule
注意:仅写 // @axion(不带任何属性)也是合法的——默认采用 RW 访问模式,并自动分配地址。
# 从 YAML/TOML 文件生成
axion-hdl -s led_blinker.yaml -o output --all
# 从 SystemVerilog 源代码生成
axion-hdl -s led_blinker.sv -o output --sv --c-header --doc
output/ 目录中将包含以下文件:
| 文件名 | 说明 |
|---|---|
led_blinker_axion_reg.vhd | AXI4-Lite 从机模块(VHDL) |
led_blinker_axion_reg.sv | AXI4-Lite 从机模块(SystemVerilog) |
led_blinker_regs.h | 包含宏定义的 C 头文件 |
index.html | 寄存器文档主页 |
html/ | 各模块的文档页面 |
led_blinker_regs.xml | IP-XACT 格式描述 |
led_blinker_regs.yaml | YAML 格式寄存器映射 |
led_blinker_regs.json | JSON 格式寄存器映射 |
在顶层 VHDL 设计中实例化生成的模块:
led_blinker_regs : entity work.led_blinker_axion_reg
port map (
axi_aclk => clk,
axi_aresetn => rst_n,
-- AXI4-Lite 总线信号
axi_awaddr => s_axi_awaddr,
axi_awvalid => s_axi_awvalid,
-- ... 其他 AXI 信号 ...
-- 寄存器信号连接
control => control_reg,
led_state => led_state_sig,
period_ms => period_reg
);
或在 SystemVerilog 中实例化:
led_blinker_axion_reg u_regs (
.axi_aclk (clk),
.axi_aresetn (rst_n),
// AXI4-Lite 总线信号
.axi_awaddr (s_axi_awaddr),
.axi_awvalid (s_axi_awvalid),
// ... 其他 AXI 信号 ...
// 寄存器信号连接
.control (control_reg),
.led_state (led_state_sig),
.period_ms (period_reg)
);
如需了解更多用法细节,请参阅 references/ 目录下的文件:
cli-usage.md — axion-hdl 命令行模式用法gui.md — axion-hdl GUI 模式用法outputs.md — axion-hdl 输出文件说明当用户需要创建 PetaLinux 工程、配置 Linux 内核/rootfs/U-Boot、编写设备树(system-user.dtsi)、添加自定义应用程序 recipe、构建嵌入式 Linux 镜像、打包 BOOT.BIN 启动镜像、生成 WIC SD 卡镜像、部署到 SD 卡/QSPI、通过 QEMU 仿真启动、通过 JTAG 下载调试、动态加载 FPGA 比特流、或解决 PetaLinux 构建/版本问题时使用此技能。涵盖 petalinux-create、petalinux-config、petalinux-build、petalinux-package 全流程命令。当用户提及嵌入式 Linux、Yocto、meta-user、kernel config、rootfs 配置、u-boot、FSBL、PMU firmware、ATF、FIT image、设备树覆盖或 Zynq/MPSoC/Versal Linux 系统构建时触发。如需生成 XSA 文件使用 vivado-synth 和 vivado-impl,如需编写时序约束使用 vivado-constraints,如需硬件调试使用 vivado-debug,如需 PYNQ 镜像构建使用 pynq。
当用户需要为自己定制的开发板或已有开发板创建 PYNQ 工程、编译生成 PYNQ 镜像、定制板卡 BSP、编写板卡 .spec 文件、构建 SD 卡镜像、管理 PetaLinux BSP 层(meta-user、device-tree、kernel patch)、配置 PYNQ packages(pre.sh/qemu.sh/post.sh)、运行 pkgverify.sh 验证包、使用 flashsd.sh 烧写 SD 卡、使用 imgshell.sh 挂载编辑镜像、开发或加载 Overlay(BaseOverlay、自定义 Overlay、xsa overlay 工作流)、解析 HWH 文件、使用 PYNQ Python API(MMIO、DMA、GPIO、Interrupt 等)、在运行 PYNQ 镜像的板卡上编写/调试 Jupyter Notebook 代码时使用此技能。如需生成 bitstream 和 HWH 文件使用 vivado-synth、vivado-impl,如需编写时序约束使用 vivado-constraints,如需 TCL 自动化使用 vivado-tcl,如需硬件调试使用 vivado-debug。
当用户需要实现Vivado工程GIT化的时候使用该技能。
当用户需要查找xilinx官方文档时使用该技能
Vitis HLS 综合助手,用于 C/C++ 到 RTL 转换。涵盖内核开发、pragma 优化、接口配置和综合报告分析。综合后实现使用 vivado-impl,时序分析使用 vivado-analysis,硬件调试使用 vivado-debug。
当用户需要 Vivado 设计分析、时序报告解释或时序收敛方面的帮助时使用此技能。这包括 report_timing 解释(slack 计算、路径分析、时钟 skew/不确定性)、report_timing_summary 签发验证、report_qor_assessment(QoR 评分 1-5,评估类别)、report_qor_suggestions(自动优化建议,.rqs 工作流程)、report_design_analysis(时序路径特性、复杂度/Rent 分析、拥塞分析)、report_methodology(设计规则符合性)、report_utilization(资源使用分析)、report_cdc(时钟域交叉检查)、report_drc(设计规则检查)、report_bus_skew、时序收敛策略(setup/hold 违规解决、拥塞缓解)、消息严重性管理以及设计检查豁免。此技能提供分析和解释知识——如需执行 TCL 命令使用 vivado-tcl,如需修改约束使用 vivado-constraints,如需更改实现策略使用 vivado-impl。