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

在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”,
2. i/o buffers设置
设置settings–>综合 synthesis–>选项options下拉至最后一项:more options,将其值设置为:
-mode out_of_context
-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


纳微半导体全速助力蔚来手机,GaNFast™氮化镓快充提升车手互联用户体验
我国房间空调器行业第二阶段HCFC淘汰管理工作正式启动
小米5G新机已获得3C认证最高将支持66W快充
华为在巴黎正式发布了华为P30和P30 Pro两款手机
华为云耀云服务器 L 实例,是否是企业简单上云的最佳选择?
如何将包含XIlinx IP的用户模块封装成网表文件
TDK发表超高Q特性积层陶瓷电感器
Linux Kernel suspend/resume 过程
人工智能在网络安全中的应用研究
锂离子电池保护电路UCC3957
MAX306, MAX307 高精度、16通道/双8通道、高
苹果发布M2处理器,称其比intel i5强26倍
联想Z5s评测 在同价位级别中拍照和游戏性能都做到极致
智能门锁市场情况_智能门锁发展面临的问题
一加手机欧美发布一加3T午夜黑版 首批仅250台
华为推出了首款消费者5G产品
TriQuint推出首款用于通道绑定的宽带回路放大器TAT3814
今年与明年晶圆市场将供不应求,晶圆厂商将迎大获利
GSA证实:44个国家移动运营商已推出符合3GPP的商用5G网络
什么是千兆光模块,它有哪些特点