Generate Output Products与Create HDL Wrapper
2026/7/18 20:03:55 网站建设 项目流程

这两者在 Vivado 的 Block Design (BD) 设计流程中分工明确,简单来说:Generate Output Products 是处理 BD 内部的“脏活累活”,而 Create HDL Wrapper 是给 BD 套上一层对外沟通的“代码外衣”。

以下是详细的区分以及添加新 IP 后的操作指南:

1. Generate Output Products(生成输出产物)

这是将你在图形化界面连好的线、配置好的 IP 核,真正翻译到底层的过程。

  • 它干了什么:Vivado 会针对 BD 内部的每一个 IP 核,生成底层的综合网表(.dcp文件)、仿真模型文件、引脚约束文件以及实例化的 HDL 代码。

  • 通俗理解:把图形化的图纸扔进工厂,生产出内部所有的真实零件和内部连线。

2. Create HDL Wrapper(创建 HDL 顶层封装)

Vivado 的综合工具只认纯文本的代码(Verilog 或 VHDL)作为顶层(Top Module),不能直接把图形化的 BD 文件作为顶层去编译。

  • 它干了什么:它会自动生成一个纯文本的.v.vhd文件。这个文件里面没有具体的业务逻辑,只有一个大模块的声明,并且把你的 BD 作为唯一的一个组件(Component/Instance)实例化在里面。

  • 通俗理解:给组装好的机器(BD)套上一个带有标准插座的外壳。以后你想把这台机器连到外部引脚,或者跟你自己写的其他 Verilog 代码连起来,都是通过这个外壳上的插座来插拔。

当你在 Block Design 里面新加了一个 IP 核,需要重新生成吗?

结论:Generate Output Products 必须重新生成,但 Create HDL Wrapper 不一定。

必须做的事:重新 Generate Output Products

只要你修改了 BD 内部的任何东西(哪怕只是改了一个 IP 的参数,或者连了一根线,更别说新增 IP 了),你都必须重新执行 Generate Output Products。如果不执行,底层就找不到新加零件的代码,综合时绝对会报错。通常你保存 BD 时,Vivado 也会弹窗提醒你 Out-of-date 并让你重新生成。

视情况而定的事:Create HDL Wrapper

是否需要重新生成 Wrapper,取决于你加的这个新 IP有没有向外引出新的端口(Make External)

  • 情况 A:没有引出新端口。这个新 IP 仅仅是在 BD 内部跟已有的 IP 连在了一起。因为整个机器对外的“插座”数量和名字没变,外壳依然适用,你不需要重新生成 Wrapper。

  • 情况 B:引出了新的外部端口。你把新 IP 的某个引脚Make External了,这意味着对外接口变了。这时是否需要手动操作,取决于你最初创建 Wrapper 时的选项:

    • 如果是 Vivado 托管(Let Vivado manage wrapper and auto-update):这是默认也是最推荐的选项。你不需要手动点击。当你保存 BD 并在 Vivado 点击综合或跑流程时,后台会自动把新端口更新到 Wrapper 文件里。

    • 如果是允许用户编辑(Copy generated wrapper to allow user edits):如果你之前选了这个模式,打算自己手动写顶层代码,那么 Vivado 就不会再管它了。你必须手动打开那个 Wrapper 的.v文件,把新的端口敲进去,或者干脆删掉旧的重新 Create 一次。

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

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

立即咨询