提出问题

从接触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

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

  1. (17)Vivado IP综合选项Global和Out-Of-Context区别(FPGA不积跬步101)

    名言:水滴石穿. 1 Vivado IP综合选项到底如何选择? 在Vivado定制IP时,选择"Customize IP"后会弹出一个框.细心的设计人员可以看到Synthesis ...

  2. Vivado IP核Global 和 out of context per IP两种综合方式区别

    Vivado IP核Global 和 out of context per IP两种综合方式区别 两者区别 OOC生成的文件 注意.注意.注意 1.更新IP核参数时需注意 2.IP核中包括高阻态时需注 ...

  3. Vivado IP核生成设置

    vivado中design with ip相比于ise感觉还是改进了. 首先我们简单介绍一下vivado中design with ip的设计过程: (1)打开IP Catlog定制自己的IP设计,比如 ...

  4. 强大的Vivado IP工具——自定义IP的使用

    首先,要指出,本文不描述任何IP的功能与使用.   在开发一个大型FPGA项目时,多人协作是必不可少的.这个时候,如何提交设计给负责集成的人,是项目开发中最关键的问题之一. 常用的一个方法是,提交网表 ...

  5. vivado ip xdc 和user xdc 编译顺序

    参考ug903 p12 报告约束编译顺序 report_compile_order - --------------------------我是分割线哈哈哈---------------------- ...

  6. AXI 基础第 5 讲-创建 AXI4-Lite Sniffer IP 以在赛灵思Vivado IP Integrator中使用

    点击"蓝字"关注我们 引言 在某些情况下,通过嗅探 AXI 接口来分析其中正在发生的传输事务是很有用的.在本文中,我将为大家演示如何创建基本 AXI4-Lite Sniffer I ...

  7. Vivado IP核之复数浮点数累加 Floating-point

    Vivado IP核之复数浮点数累加 Floating-point 快速实现多个数据相加 目录 前言 一.Floating-point IP核配置步骤 二.仿真 1.顶层代码 2.仿真代码 三.仿真结 ...

  8. Vivado IP核被锁的解除方法

    在使用vivado进行开发时,我们经常会用到别人的工程,如果我们更改工程所使用的芯片型号(Vivado工程导入IP核的原工程和当前工程的FPGA开发板不一致),或者别人的工程所用到的vivado版本与 ...

  9. Vivado IP核之复数浮点数除法 Floating-point

    Vivado IP核之复数浮点数除法 Floating-point 目录 前言 一.复数浮点数除法示例 二.Floating-point IP核配置步骤 三.整体思路 四.仿真 1.顶层代码 2.仿真 ...

最新文章

  1. 大失所望:第一次去苹果店“享受”维修服务的经历
  2. AngularJS 实现的输入自动完成补充功能
  3. 前端学python有什么用-学习和使用python的13个理由
  4. Matlab:单幅图象的暗原色先验去雾改进算法,能够很好地改进天空或明亮部分色彩失真问题
  5. 使用python进行面部合成,比PS好用多了
  6. 【Qt】2D绘图之复合模式
  7. 单例-初始化动作只执行一次
  8. DB2中ixf文件的导入导出
  9. [项目经验]玩转开源项目
  10. cocos2d-x学习 之四
  11. is present but cannot be translated into a null value due to being declared as a primitive type
  12. select元素javascript常用操作(转载)
  13. Android Studio connot resolve symbol XXX 无法解析的符号
  14. 创客匠人:怎么用微信小程序直播?
  15. 带圆圈的数字和markdown常用表达式记录
  16. 计算机表格斜杠怎么打,excel斜杠_excel表格打斜杠的方法步骤详解
  17. 微信无法打开xlsx文件_微信打不开文件怎么办显示excel丢失或损坏
  18. 全面解决交通难题,智慧大脑助力城市创建智慧交通管理体系
  19. SEO入门知识1:网站改版后怎么做SEO
  20. 何绍华Linux操作系统第3版章节课后答案习题

热门文章

  1. 一个httpwebrequest异步下载的例子
  2. oppo 手机侧滑快捷菜单_OPPO手机的十年之路,创新精神让品牌再升华
  3. linux 内核调试 booting the kernel.,Uncompressing Linux...done, booting the kernel解决办法
  4. python 混合整数规划_matlab求解混合整数规划的困惑
  5. layer的一种用法,自己画出弹出框样式
  6. 数学对象round()方法,ceil()方法,和floor()方法有什么区别
  7. document.body.offsetWidth 网页可见区域高宽,offset、client、scroll使用方法详解,页面位置距离
  8. mysql导入数据权限_mysql5.7导入数据的权限问题
  9. tcc分布式事务_什么是 TCC分布式事务?
  10. 拉格朗日、傅里叶、黎曼、柯西、狄利克雷、勒贝格杨、拉贝泰勒,这首诗都包括全了