行业资讯

Vivado 自定义 IP 封装 + Block Design 调用完整流程

发布时间:2026/8/28 8:16:27
Vivado 自定义 IP 封装 + Block Design 调用完整流程 目录1. 第一步将你的工程封装为IP核2. 第二步在Block Design中使用自定义IP核1. **将IP添加到Vivado IP仓库**2. 在Block Design中例化IP3. 连线、验证与生成3. 如何给新建ip核分配地基地址4.Vivado BD 删除模块IP残留清理完整方案5. 将自定义IP参数显示在最下面6 BD 层级块 Hierarchy封装1. 第一步将你的工程封装为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文件2. 第二步在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文件3. 如何给新建ip核分配地基地址右键需要分配地址的模块点击auto assign address由于我的已经分配过了所以显示灰色若想修改地址直接双击地址部分修改即可4.Vivado BD 删除模块IP残留清理完整方案Sources 面板带问号的 IP就是 BD 画布删掉后、工程缓存 / 文件没同步清理导致的残留分 4 步从简单到彻底处理基础同步修复优先操作90% 场景生效同步 Block Design 状态打开你的design_1.bd块设计画布确认目标 IP 已经在画布上删除干净。保存 BD 文件CtrlS。重新生成关联文件在 Sources 面板中右键点击 BD 文件如design_1.bd。选择Generate Output Products重新生成 BD 关联的 IP 文件。更新顶层封装再次右键点击 BD 文件。选择Create HDL Wrapper更新顶层封装文件。刷新工程视图点击菜单栏File Refresh All。检查与清理若问号仍在若 Sources 面板中带问号的 IP如axi_quad_spi_0仍然存在选中该 IP。右键点击选择Remove File from Project此操作仅从工程中移除引用不删除本地文件。重新执行一次Generate Output Products残留条目通常会消失。5. 将自定义IP参数显示在最下面在 IP Packager 中直接拖拽调整这是最直观的方法适用于在封装 IP 时微调参数在最终用户配置 GUI 中的显示顺序。操作步骤打开 IP 封装工程在 Vivado 中打开你的 IP 封装工程IP Packager Project。进入 Customization GUI 界面在左侧的 “Package IP” 窗口中找到并点击Customization GUI页面。找到并调整参数位置该页面分为左右两栏。在左侧的“Layout”栏中找到你想要调整顺序的参数Parameter。直接按住该参数将其拖拽到列表中你期望的新位置即可。重要提示此方法调整的是参数在最终用户看到的 IP 配置 GUI中的显示顺序。它不会改变 “Customization Parameters” 页面本身的参数列表顺序。6 BD 层级块 Hierarchy封装不是独立.bd 文件双击可以展开编辑适合单纯整理视图、分组逻辑不能单独复用。在顶层 BD 画布Ctrl 框选你要打包的所有 IP、连线右键 →Create Hierarchy输入名字比如data_collect_hierOK画布上就变成一个单独方块双击这个方块可以进入内部编辑自动生成对外端口信号 / AXI 接口端口自动生成规则跨 hier 的线自动引出 port如果端口不对可以右键 hier →Synchronize Ports同步更新端口