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

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

3天内不再提示

如何将包含XIlinx IP的用户模块封装成网表文件

FPGA之家 来源:FPGA之家 2023-05-18 11:12 次阅读

在Vivado TCL命令窗口中可以通过调用write_edif命令将用户自定义模块封装成.edf网表文件(类似ISE里的.ngc文件),但按照官方给出的参考用法生成的网表文件对自定义模块有种种限制,即待封装的模块不能含有Xilinx IP(少部分IP可以包含,如RAM IP、FIFO IP等),如DSP IP、MIG IP等,否则在编译时将报错,提示有未定义的黑盒。

那么如何将包含XIlinx IP的用户模块封装成网表文件,下面将给出详细步骤

1. 将待封装模块设置为top层
如下图所示,待封装模块为abc,则选中abc后右键,选择“Set as Top”,

a1ceb78c-f525-11ed-90ce-dac502259ad0.png

2. I/O Buffers设置
设置Settings–>综合 synthesis–>选项options下拉至最后一项:More Options,将其值设置为:

-mode out_of_context

a1d65bfe-f525-11ed-90ce-dac502259ad0.jpg
-mode out_of_context表示在该级不插入任何I/O BUFFERs,该选项类似ISE里在相应设置处不勾选I/O BUFFERs。
另外还可以在选项options中找到“-flatten_hierarchy”,将层级结构设置为“full”,
层级结构则可设置“-flatten_hierarchy”选项为“full”:“全”该选项指示工具把层级全面变平,只剩下顶层,保护IP的层级结构不被其他用户清楚查看。

3. 综合
运行综合synthesis,完成综合后,打开综合设计open synthesized design

4. 生成仅包含IO端口信息的empty module
打开综合设计open synthesized design后,在TCL命令窗口执行如下命令:
2017.4之前版本:

write_verilog -mode port F:/FPGA/abc_stub.v

2018.1之后版本:

write_verilog -mode synth_stub F:/FPGA/abc_stub.v

其中F:/FPGA/替换为要存放的路径,如未指明路径,则将存放到工程文件所在路径下。

5. 生成edf文件
重头戏来了,分两条:

若不含Xilinx IP则可通过如下命令生成edf文件:
write_edif F:/FPGA/abc.edf

若含Xilinx IP则需通过如下命令生成edf文件:
write_edif -security_mode all F:/FPGA/abc.edf

6. 新工程中网表文件调用
将上述生成的abc_stub.v和abc.edf添加到新工程中即可。

7. 带Xilinx IP的另外一种网表封装方式(不推荐
上述步骤3后,在tcl命令窗口中执行如下命令:

write_verilog -force abc_stub.v

审核编辑:彭静

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

    关注

    124

    文章

    7281

    浏览量

    141102
  • Xilinx
    +关注

    关注

    70

    文章

    2121

    浏览量

    119376
  • 编译
    +关注

    关注

    0

    文章

    615

    浏览量

    32397

原文标题:使用Vivado将包含Xilinx IP的用户模块封装成网表文件(也适用不包含Xilinx IP的用户模块)

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    动态库封装成python模块的方法

    之前的文章 将静态库封装成 python 模块中讲解了如何将静态库封装成 python 模块,静态库封装
    发表于 07-13 15:24 380次阅读

    XILINX IP核移植

    XILINX ISE 14.7,我想建立一个工程,里面要调用之前别人的包含SRAM IP核的模块,需要使用.v和.ngc文件,可是不知道那个
    发表于 04-18 14:21

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

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

    vivado带ip核的工程封装

    请教一下,vivado怎么把带ip核的工程进行封装,保证代码不可见,可以通过端口调用。我尝试了以下方法,ippackage,如果要在另一个程序里调用,也要提供源代码;另一个方法是
    发表于 07-14 09:18

    如何将CCS3.3工程中.C文件封装成OBJ库文件

    如何将CCS3.3工程中的.C文件封装成OBJ库文件
    发表于 11-02 09:41

    xilinx vivado 怎么封装包含一个ip核的自定义ip

    我写了一个缓存模块,里面包含有一个BlockRAM的IP核,现在想把这个缓存模块封装成我的一个自定义ip
    发表于 12-11 10:25

    如何将IIC文件加载到Xilinx平台电缆USB II中使用的EEPROM中去?

    大家下午好,谁能告诉我如何将IIC文件加载到Xilinx平台电缆USB II中使用的EEPROM中?我们尝试使用控制中心样本IIC文件加载
    发表于 09-04 13:44

    怎么HDL源文件添加到Xilinx IP

    嗨,我必须在现有的XilinX IP(MIG)中添加一个新的verilog文件。我取消选中了IP属性中的“IS MANAGED”选项,并在顶部实例化了新
    发表于 04-21 06:38

    如何将常用接口封装成类似于NCNN的接口调用形式?

    如何将常用接口封装成类似于NCNN的接口调用形式?
    发表于 03-10 07:08

    函数封装成库使用的方法

    作者:Aki Li在项目开发过程中,开发者出于保护核心算法的目的,希望部分核心代码封装起来,使得其他使用者无法查看具体的代码实现细节,而不影响正常的调用。常见的思路是核心的函数封装成
    发表于 11-07 08:05

    基于Vivado将verilog代码封装成IP的步骤

    Xilinx的Vivado采用原理图的设计方式,比较直观适合大型项目,我们自己的code都需要封装成user IP。这里主要介绍怎么把多个关联管脚合并成类似bus的大端口。
    发表于 09-15 16:54 42次下载
    基于Vivado将verilog代码<b class='flag-5'>封装成</b><b class='flag-5'>IP</b>的步骤

    Vivado将模块封装IP的方法介绍

    在给别人用自己的工程时可以封装IP,Vivado用封装IP的工具,可以得到像xilinxip
    的头像 发表于 06-26 11:33 7488次阅读

    如何将IP模块整合到System Generator for DSP中

    了解如何将Vivado HLS设计作为IP模块整合到System Generator for DSP中。 了解如何将Vivado HLS设计保存为
    的头像 发表于 11-20 05:55 2986次阅读

    Xilinx SelectIO IP的GUI参数详细解释

    Xilinx SelectI IP是一个VHDL/Veilog封装文件,根据用户配置生成实例化的I/O逻辑,满足了输入SERDES、输出SE
    的头像 发表于 06-06 09:46 1644次阅读

    关于如何将函数封装成库使用的方法介绍

    关于如何将函数封装成库使用的方法介绍
    发表于 10-28 12:00 1次下载
    关于<b class='flag-5'>如何将</b>函数<b class='flag-5'>封装成</b>库使用的方法介绍