AXI协议自定义IP

作者:Chen Yang,AMD工程师;文章来源:AMD开发者社区

在基于 ARM + FPGA 的 SoC 设计中(如 Zynq / Zynq MPSoC / Versal),AXI 总线几乎贯穿了整个系统。无论是 PS 访问 PL 里的控制寄存器,还是软件驱动硬件加速单元,自定义 AXI Peripheral IP 都是一个绕不开的技能

在实际项目中,标准或半定制的 AXI4 IP 已经可以通过 HLS 生成,尤其适合算法密集型或数据通路导向的设计场景。然而,在需要状态完全可控、寄存器模型频繁变化的场景下,仍然需要采用 RTL 级 AXI4 协议 IP。

在Vivado的菜单栏,Tools->Create and Package New IP,开始创建package IP工程。

IP 工程来源:点击之后,会出现创建 IP 的向导界面,选择 Create AXI4 Peripheral。

IP细节:这里命名IP名称,版本信息,创建位置等等。

定义接口:AXI接口有三大类可以创建,AXI Lite、AXI Full和AXI Stream。AXI Lite 接口多用于控制与状态寄存器访问,AXI Full 用于基于地址的高性能数据传输,而 AXI Stream 适用于流式数据传输(不包含地址信息)。

接口可以分别定义Master或Slave类型,数据位宽,内存大小,以及寄存器数量。

工程总结:点击Finish完成设置。

当Add IP to the repository后,打开IP catalog,右键Edit in IP Package。

打开Package 工程之后,工具已经给你设置好相应的AXI接口模板:

以上就是创建 AXI 协议自定义 IP 的基本流程。至此,读者已经可以基于该流程开始构建自己的 AXI IP。