0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

把子模块包含网表的RTL代码添加到BD中的方法分享

FPGA技术驿站 来源:FPGA技术驿站 2023-08-24 09:10 次阅读

Vivado以IP为核心的设计理念的一个重要支撑就是IP Integrator(简称IPI,IP集成器)。用户可以很便捷地把VivadoIP Catalog中的IP拖到IPI中形成Block Design(.bd文件)。

同时,对于用户自己的RTL代码,可以借助IP Packager先封装成IP,再导入到IP Catalog中,然后在IPI中使用。

此外,Vitis HLS、Vitis Model Composer都可以将用户设计以IP形式输出供用户导入到IP Catalog中调用。

de23d58a-4211-11ee-a2ef-92fbcf53809c.png

尽管如此,不得不说借助IP Packager封装IP的过程还是有些繁琐的。当然,我们也要看到封装IP带来的好处就是便于不同设计团队开发使用。IPI的功能仍在不断增强。

一个显著的功能是用户可以直接将RTL代码拖到IPI中构成BD,如下图所示。要求RTL设计的顶层如这里的uart_tx必须是Verilog或VHDL描述。SystemVerilog/VHDL-2008不支持此功能。

此功能被称为模块引用(Module Reference)。

de2da056-4211-11ee-a2ef-92fbcf53809c.png

关于模块引用,我们可能会碰到以下问题。

问题1:待引用的顶层采用的是SystemVerilog或VHDL-2008描述的。

因为模块引用不支持SystemVerilog也不支持VHDL-2008,在这种情况下,可以用Verilog或VHDL先对该模块封装以下,这样就可以将封装后的.v或.vhd模块添加到IPI中。

问题2:若待引用的顶层其子模块包含IP Catalog中的IP(以.xci形式存在),那么是否支持此功能?

模块引用功能允许待引用的顶层其子模块包含.xci IP,但并不是所有的IP都支持。可通过如下命令获取不支持此功能的IP。可以看到NoC、CIPS和PS是不支持的。换言之,目前的Vivado版本(2023.1)只能在IPI中直接使用这些IP。





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • VHDL语言
    +关注

    关注

    1

    文章

    113

    浏览量

    17987
  • RTL
    RTL
    +关注

    关注

    1

    文章

    385

    浏览量

    59694
  • Vivado
    +关注

    关注

    19

    文章

    808

    浏览量

    66315
  • HLS
    HLS
    +关注

    关注

    1

    文章

    128

    浏览量

    24026

原文标题:如何把子模块包含网表的RTL代码添加到BD中

文章出处:【微信号:Lauren_FPGA,微信公众号:FPGA技术驿站】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    xilinx EDF已经综合过的文件怎样添加到Vivado工程?

    xilinx EDF已经综合过的文件怎样添加到Vivado工程?买了一个第三方的IP,给出了端口列表和核心模块发射机的.edf已经综合
    发表于 09-07 11:34

    可以将块设计添加到吗?

    嗨,是否有可能将块设计添加到工作库,我可以使用“entity work.bs_name”对其进行实例化?我可以使用库的vhdl组件,使用ips和生成块设计的包装器来完成此操作,但不能使用块设计本身
    发表于 04-18 07:00

    有什么方法能将以太功能添加到PSoC设计中去?

    WebServer。那么,你们有什么方法将以太功能添加到PSoC设计呢?我应该使用像PIC18F之类的东西,把它连接到PSoC上吗?还有其他建议吗?
    发表于 08-13 03:30

    将新库添加到Petalinux rootfs的最简单方法是什么

    嗨,将新库添加到Petalinux rootfs的最简单方法是什么?1>如何将预编译的库添加到rootfs,这将在petalinux-config -c rootfs检测到2>如何将
    发表于 05-22 08:32

    怎样将PMSM模块添加到Simulink

    如何去添加PMSM模块?怎样将PMSM模块添加到Simulink
    发表于 09-23 09:16

    请问如何将自己的代码添加到工程

    新手上路,两个问题,第一,手册里给的测试程序的源码在哪(源码的具体路径)?第二,如何将自己的代码添加到工程
    发表于 01-05 07:09

    如何在arduino IDE上将SPI模块作为库添加到nodemcu代码

    嗨,我想通过它的 SPI 接口来使用 nodemcu。是一个示例项目。但是我找不到如何在 arduino IDE 上将 SPI 模块作为库添加到我的 nodemcu 代码。我在 sp
    发表于 02-24 07:48

    Yocto S32G添加新层,如何添加到图像?

    meta-mylayer 路径添加到 bblayers.conf。 然后我构建 fsl-image-auto,我测试它,关于层的代码不起作用。 我搜索问题,我需要将图层添加到图像
    发表于 04-25 09:59

    包含路径不会添加到项目中的每个源文件怎么解决?

    当在项目设置添加包含路径时,不会将此路径添加到每个源文件,因此需要在文件夹搜索头文件的源文
    发表于 05-05 07:49

    如何将Crosswalk添加到Cordova应用程序

    英特尔开源技术中心的Bob Spencer解释了如何将Crosswalk添加到Cordova应用程序,以提供具有世界级性能的可预测运行时。
    的头像 发表于 11-07 06:37 2282次阅读

    谷歌将在本周把隐私信息添加到ios应用

    本周三,谷歌宣布将在本周内尽快把隐私信息添加到旗下 iOS 应用,否认关于其抵制苹果新隐私政策的传闻。
    的头像 发表于 01-07 15:45 1480次阅读

    S7-1200将模块添加到组态的方法

     使用硬件目录将模块添加到 CPU 。 有三种类型的模块
    的头像 发表于 03-11 10:30 5382次阅读

    RTL模块添加到Block Design的步骤

    使用Vivado Block Design设计解决了项目继承性问题,但是还有个问题,不知道大家有没有遇到,就是新设计的自定义 RTL 文件无法快速的添加到Block Design,一种方式是通过
    的头像 发表于 06-11 16:27 3584次阅读
    将<b class='flag-5'>RTL</b><b class='flag-5'>模块</b><b class='flag-5'>添加到</b>Block Design的步骤

    西门子博途S7-1200:将模块添加到机架的方法

    在网络视图中将设备从硬件目录添加到组态后,即可向设备添加模块
    的头像 发表于 09-04 15:22 6701次阅读
    西门子博途S7-1200:将<b class='flag-5'>模块</b><b class='flag-5'>添加到</b>机架的<b class='flag-5'>方法</b>

    安装python怎么添加到环境变量

    Python是一种简单易学的脚本语言,广泛应用于开发各种类型的应用程序。为了在Windows操作系统上使用Python的命令行工具,需要将Python添加到系统的环境变量。本文将向您详细介绍如何在
    的头像 发表于 11-23 16:40 3014次阅读