Vivado IP核的综合模式:Global以及Out of context的区别理解

提出问题

从接触FPGA生成第一个IP核开始,就遇到一个选择的问题,定制完成IP核后,最有一页会有一个选择综合模式的问题,有两个选择,一个是Global,另一个是Out of Context,是什么意思呢?
在这里插入图片描述

你可以不用管它,默认的选择是Out of Context是不会坑你的!默认的也是软件推荐的方式。
今天为了加深理解,来理解下这两种综合方式的区别。

问题解释

通俗解释

参考互联网上的多家之言,可以这么去理解;
Global:
从字面意思上看,Global可以翻译为全局的方式,也就是说,此IP核生成之后,和用户编辑的逻辑一起综合,且每次逻辑变动之后都要重新综合;这就是问题关键了,这样的操作的一个缺点就是我的IP核本身定制好了是不需要更改的,可是用户逻辑每次变动一次,重新综合的时候,连带我的IP核也要重新综合,这样岂不是白白浪费时间!确实如此,于是就可以选择另一种方式解决这个问题,Xilinx推荐使用的Out of Context综合方式。
Out of Context:
这样方式可以字母直译为每个IP脱离上下文,什么意思呢?就是非全局呗。
只要IP核不改动,那么我的IP在定制完成之后综合一次,以后无论你怎么变动用户逻辑,我的IP都不会重新综合。
由于不需要每次都重新综合,这样就会大大减小每次综合的时间,这对于FPGAer来说,是十分重要的。

更多理解

稍微了解Vivado编译过程的人都知道,在FPGA综合,实现的过程中都会生成dcp文件,从这个角度来看Out-Of-Context与Global synthesis之间的区别:
看下这张图:
在这里插入图片描述

可见,如果按照Global模式,如下图:
在这里插入图片描述

IP文件和顶层一起综合。

如果采用OOC模式,则会产生DCP文件:
在这里插入图片描述

它单独综合出一个网表文件和一个stub文件,在实现过程中,这个IP的网表和顶层文件产生的网表一起参与实现。

OOC模式下的输出文件为:
在这里插入图片描述
本文参考数据手册:ug896,随意翻阅,理解甚浅,抛砖引玉!

参考文献

generate output products - difference between ‘Global’ and ‘Out of context per IP’

Disadvantages of “Out Of Context” synthesis

ug896-vivado-ip

猜你喜欢

转载自blog.csdn.net/Reborn_Lee/article/details/108295992