Vivado 自定义 IP 封装 + Block Design 调用完整流程
2026/9/16 18:30:05 网站建设 项目流程

目录

  • 1. 第一步:将你的工程封装为IP核
  • 2. 第二步:在Block Design中使用自定义IP核
    • 1. **将IP添加到Vivado IP仓库**:
    • 2. 在Block Design中例化IP:
    • 3. 连线、验证与生成:
  • 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% 场景生效)

  1. 同步 Block Design 状态
    • 打开你的design_1.bd块设计画布,确认目标 IP 已经在画布上删除干净。
    • 保存 BD 文件(Ctrl+S)。
  2. 重新生成关联文件
    • 在 Sources 面板中,右键点击 BD 文件(如design_1.bd)。
    • 选择Generate Output Products,重新生成 BD 关联的 IP 文件。
  3. 更新顶层封装
    • 再次右键点击 BD 文件。
    • 选择Create HDL Wrapper,更新顶层封装文件。
  4. 刷新工程视图
    • 点击菜单栏File > Refresh All
  5. 检查与清理(若问号仍在)
    • 若 Sources 面板中带问号的 IP(如axi_quad_spi_0)仍然存在:
      • 选中该 IP。
      • 右键点击,选择Remove File from Project(此操作仅从工程中移除引用,不删除本地文件)。
    • 重新执行一次Generate Output Products,残留条目通常会消失。

5. 将自定义IP参数显示在最下面


在 IP Packager 中直接拖拽调整

这是最直观的方法,适用于在封装 IP 时微调参数在最终用户配置 GUI 中的显示顺序。

操作步骤:

  1. 打开 IP 封装工程

    • 在 Vivado 中,打开你的 IP 封装工程(IP Packager Project)。
  2. 进入 Customization GUI 界面

    • 在左侧的 “Package IP” 窗口中,找到并点击Customization GUI页面。
  3. 找到并调整参数位置

    • 该页面分为左右两栏。
    • 在左侧的“Layout”栏中找到你想要调整顺序的参数(Parameter)。
    • 直接按住该参数,将其拖拽到列表中你期望的新位置即可。

重要提示

  • 此方法调整的是参数在最终用户看到的 IP 配置 GUI中的显示顺序。
  • 不会改变 “Customization Parameters” 页面本身的参数列表顺序。

6 BD 层级块 Hierarchy封装

不是独立.bd 文件,双击可以展开编辑,适合单纯整理视图、分组逻辑,不能

单独复用。

  1. 在顶层 BD 画布,Ctrl 框选你要打包的所有 IP、连线
  2. 右键 →Create Hierarchy,输入名字(比如data_collect_hier),OK
  3. 画布上就变成一个单独方块;双击这个方块可以进入内部编辑,自动生成对外端口(信号 / AXI 接口)
  4. 端口自动生成规则:跨 hier 的线自动引出 port;如果端口不对,可以右键 hier →Synchronize Ports同步更新端口

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询