目录
- 第一步:将你的工程封装为IP核
- [第二步:在Block Design中使用自定义IP核](#第二步:在Block Design中使用自定义IP核)
-
- [1. **将IP添加到Vivado IP仓库**:](#1. 将IP添加到Vivado IP仓库:)
- [2. 在Block Design中例化IP:](#2. 在Block Design中例化IP:)
- [3. 连线、验证与生成:](#3. 连线、验证与生成:)
- 如何给新建ip核分配地基地址
第一步:将你的工程封装为IP核
-
确保工程正确:在封装前,务必保证你的Vivado工程能够综合通过,并且最好完成了功能仿真验证,确保逻辑正确。
-
启动IP封装向导 :在Vivado主界面,点击菜单栏 Tools → Create and Package New IP...。

-
选择封装类型 :在弹出的向导中,选择 Package your current project
(将当前工程打包为IP核)。然后点击Next。

-
设置IP存放路径 :为你的IP核选择一个存放位置。强烈建议创建一个专门的文件夹来统一管理所有自定义IP核,方便后续维护。然后点击Next。

-
配置IP信息 :Vivado会基于你的工程创建一个新的IP打包工程,并打开IP Packager界面。在这里,你需要配置几个关键页面:

-
Identification (标识):设置IP的名称(Name)、版本(Version)、描述(Description)等信息。
-
Compatibility (兼容性):选择你的IP核所支持的FPGA器件系列(如Artix-7, Zynq-7000等)。
-
File Groups (文件组):这里会列出IP核包含的所有源文件。你还可以在此处添加仿真文件、约束文件(.xdc)或PDF文档等。
-
Customization Parameters (定制参数):如果你的代码中用到了 parameter (Verilog) 或 generic (VHDL),可以在这里将它们设置为GUI中可配置的参数。例如,你可以为一个串口IP的波特率参数提供下拉菜单选项(如9600,115200)。
-
Ports and Interfaces (端口与接口):这里会显示IP核的所有外部端口。Vivado会自动检测像clk、rst这样的信号。如果你的IP需要连接到AXI总线,需要在这里进行正确的接口定义和映射。
-
生成IP核 :完成所有配置后,进入最后的 Review and Package 页面,点击 Package IP 按钮,Vivado就会生成最终的IP核文件(.xci文件)

第二步:在Block Design中使用自定义IP核
1. 将IP添加到Vivado IP仓库:
- 打开或新建一个Vivado工程。
- 在菜单栏选择 Tools → Settings。

- 在弹出的窗口中,找到 IP → Repository。

- 点击 + 号,将你存放自定义IP核的文件夹路径添加进来。这样Vivado就能识别到你的IP了。(我的多个ip 工程放在同一个名为 IP 的文件夹中,更新后直接点击Refresh All更新新增IP封装)

2. 在Block Design中例化IP:
- 创建一个新的Block Design,或打开现有的。
- 在空白处右键单击,选择 Add IP。

- 在搜索框中输入你自定义IP核的名称,它就会出现在列表中。双击即可将其添加到Block Design中。
- (可选)如果你的IP核带有AXI接口,Vivado的 Run Connection Automation 功能可以帮你自动完成与Zynq处理系统(PS)等主设备的连接。
- 对于没有AXI接口的普通RTL模块,Vivado也支持直接在Block Design中通过 Add Module... 的方式添加。
3. 连线、验证与生成:
- 手动完成IP核与其他模块的连线,或利用 Run Connection Automation 自动连接。
- 点击 Validate Design (或按 F6) 按钮检查设计是否正确。
- 验证通过后,在 Sources 窗口中,右键点击Block Design文件(.bd),选择 Generate OutputProducts 来生成例化文件等。
- 最后,右键点击Block Design文件,选择 Create HDL Wrapper 来生成设计的顶层HDL文件
如何给新建ip核分配地基地址
右键需要分配地址的模块,点击auto assign address;由于我的已经分配过了,所以显示灰色;若想修改地址,直接双击地址部分修改即可
