目录
[一、新建自定义 IP(创建 AXI‑Lite 从机)](#一、新建自定义 IP(创建 AXI‑Lite 从机))
[步骤 2:AXI 接口配置(关键页面!)](#步骤 2:AXI 接口配置(关键页面!))
[步骤 3:编辑 Verilog 源码,添加用户逻辑(就是你修改.v的阶段)](#步骤 3:编辑 Verilog 源码,添加用户逻辑(就是你修改.v的阶段))
一、新建自定义 IP(创建 AXI‑Lite 从机)
步骤 1:打开 Vivado 工程 → 打开 IP‑Catalog 新建 AXI 外设
- 顶部菜单 Tools → Create and Package New IP(创建并打包新 IP)
- 欢迎页直接 Next
- Create a new AXI4 peripheral (选择:创建一个新 AXI 外设),Next
- 设置 IP 基本信息:


步骤 2:AXI 接口配置(关键页面!)
- Interface type:AXI4‑Lite(一定选 Lite,不要选 Full AXI4)
- Slave(作为从设备,PS 是主机)
- S00_AXI 接口名字(默认)
- Data Width:32 (32 位数据,常用)
- Number of registers:寄存器数量!

步骤 3:编辑 Verilog 源码,添加用户逻辑(就是你修改.v的阶段)
进入 IP 编辑工程:
- Sources → hdl/Time_Counter_v1_0_S00_AXI_Lite.v 这个就是底层从机模块(就是你手上这份代码!)
上层还有一层 Time_Counter_v1_0.v,它是 IP 顶层,例化了 S00_AXI_Lite 子模块。
特别注意点:
直接在 S00_AXI_Lite.v 里面添加output wire xxx端口(就像你做的那样)可以工作,但不规范! ✅标准规范做法:
- 在 ** 底层 S00_AXI_Lite.v 内部,先 assign 把 slv_reg 输出到内部 wire;
- 在 IP 顶层模块Time_Counter_v1_0.v增加外部端口;
- 顶层例化的时候连线,从顶层引出对外信号,这样 IP 封装之后外部框图上才会出现端口!