Vivado将模块封装的两种方法(EDF/EDIF文件和IP核)

写在前面

参考文章:https://www.cnblogs.com/kingstacker/p/11508111.html

软件版本:Vivado2017.4

封装生成.edf,.edif文件

1建立工程设置顶层模块

将需要封装的模块设置为顶层模块。(shift_bus模块)

Vivado将模块封装的两种方法(EDF/EDIF文件和IP核)_第1张图片

2、综合待封装模块

在设置选项的综合设置中选中打平整个设计,防止别人看到模块层次。

Vivado将模块封装的两种方法(EDF/EDIF文件和IP核)_第2张图片

设置-mode out_of_context属性,表示在该级不插入任何I/O BUFFER。类似在ISE的综合选项中去掉-iobuf选项。

Vivado将模块封装的两种方法(EDF/EDIF文件和IP核)_第3张图片

然后综合即可。

3、生成.edif/.edf网表文件

打开综合后的设计:在Flow Navigator中点击“Open Synthesis Deisgn”

Vivado将模块封装的两种方法(EDF/EDIF文件和IP核)_第4张图片


在TCL Console中输入

a)导出空壳引脚描述文件:  write_verilog -mode synth_stub 自定义目录/da1_gen.v

特别注意:路径分隔字符为“/

b) 导出综合后的网表文件:

若不含Xilinx IP则可通过如下命令生成edf文件:

write_edif 盘符目录/ da1_gen.edf

若含Xilinx IP则需通过如下命令生成edf文件:

write_edif -security_mode all盘符目录/ da1_gen.edf

 

Vivado将模块封装的两种方法(EDF/EDIF文件和IP核)_第5张图片

Vivado将模块封装的两种方法(EDF/EDIF文件和IP核)_第6张图片

可以看见我的工程目录下生成了两个文件:da1_gen.v和da1_gen.edf。

Vivado将模块封装的两种方法(EDF/EDIF文件和IP核)_第7张图片

4、调用

将da1_gen.v和da1_gen.edif文件添加到需要调用的工程中,然后直接对da1_gen模块进行例化即可。

在vivado中使用( read_edif    路径/xxx.ngc )读入网表文件到工程中,添加只包含端口信息的文件

Vivado将模块封装的两种方法(EDF/EDIF文件和IP核)_第8张图片

综合后生成BIT文件完成。

封装成自定义IP

1. 将待封装模块设置为top层

Vivado将模块封装的两种方法(EDF/EDIF文件和IP核)_第9张图片

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的层级结构不被其他用户清楚查看。

Vivado将模块封装的两种方法(EDF/EDIF文件和IP核)_第10张图片

Vivado将模块封装的两种方法(EDF/EDIF文件和IP核)_第11张图片

Vivado将模块封装的两种方法(EDF/EDIF文件和IP核)_第12张图片

可以看到在IP Catalog中找到自定义IP carrier_test_v1_0。可以点击添加自定义IP。

Vivado将模块封装的两种方法(EDF/EDIF文件和IP核)_第13张图片

可以看到在工程目录下生成了自定义IP的所有文件

 

Vivado将模块封装的两种方法(EDF/EDIF文件和IP核)_第14张图片

Vivado将模块封装的两种方法(EDF/EDIF文件和IP核)_第15张图片

 

工程使用时,将整个文件拷贝到自己正式工程里

Vivado将模块封装的两种方法(EDF/EDIF文件和IP核)_第16张图片

Vivado将模块封装的两种方法(EDF/EDIF文件和IP核)_第17张图片

综合如下错误:

Vivado将模块封装的两种方法(EDF/EDIF文件和IP核)_第18张图片

经过分析,需要将之前生成IP核里的.COE文件也一起拷贝过来。按照指定目录存放。

Vivado将模块封装的两种方法(EDF/EDIF文件和IP核)_第19张图片

由此可见,自定义IP里,需要将整个设计文件全部包含在内。

 

文末总结:

这两种方法各有优劣,笔者的意见是:当需要给合作方提供封装模块时(有版权需求),可以提供EDF文件。当给同事们相互提交模块时,可以提供自定义IP核。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(工作记录)