在最新的Vivado的版本中,定制IP的时候,会有一个综合方式的选择,如下图所示。可以看到一种叫做”Global”,一种叫”Out-Of-Context (OOC)”。从字面意思上来理解,”Out-Of-Context”是“脱离上下文”的意思。”Global”即全局。

Global synthesis

如果选择的是全局综合选项,那IP生成的文件将会和其他的用户文件一起进行综合,这也就意味着,每一次用户文件被修改后,IP都会跟着一起综合一遍。

Out-Of-Context (OOC)

OOC选项是Vivado给我们的默认选项,在OOC模式下,Vivado将会把生成的IP当成一个单独的模块来进行综合,生成.dcp (design checkpoint)文件。同时会使用一个只在OOC模式下有用的约束文件“_ooc.xdc”。
除了生成.dcp文件,OOC还会生成一个以”stub”结尾的HDL文件,是当前IP设计的一个黑盒文件,其实就是只有输入输出端口,没有其他内容,如下图所示是一个FIFO IP的”char_fifo_stub.v”实例。这个文件的作用就是跟着工程中的其他文件一起进行综合过程

最后,在”implementation”阶段,OOC生成的.dcp文件中的网表文件将和其他设计文件综合后生成的网表文件一起。

总之,两种综合方式的flow看上图。

OOC的优势

  1. 通过综合实现某个模块的快速迭代,不用综合系统的其余部分,整个设计的迭代更快了;
  2. 利于系统其余部分的快速迭代,如果某部分确定稳定不变了,可以对这个模块进行OOC综合操作,保留这个综合版本,这样就可以方便迭代其余部分;
  3. OOC将会产生”_sim_netlist.v” 或者 “_sim_netlist.vhdl”仿真文件,如果我们在使用只支持某种语言的仿真器,而IP不提供该语言的RTL文件,我们就可以直接用这些仿真文件进行IP仿真。

关于高阻态和OOC(out of context)综合方式

如果设计中存在三态(高阻态),OOC综合操作就会受到影响,FPGA仅支持I/O输出端口的高阻态,在器件内部是不允许的,如果你使用OOC综合方式,Vivado工具并不知道某个具体的信号是连接I/O输出还是在器件内部进行连接,最后,综合工具会将这个高阻信号转换为某个逻辑值,而不是最为高阻态进行综合。

举个例子,下面的代码就会带来不好的影响:

assign my_signal = enable?din1:1’bz;
  • 1

通过OOC方式综合后,my_signal信号值就不会是高阻值Z了, Vivado会选择不保留三态。如果my_signal信号只连接到外部输出I/O呢?即能够使用OOC方式对这部分模块进行综合,同时保留三态。
满足上述需求的方式就是在RTL中实例化一个三态缓存(buffer)。

OBUF u1(.l(din1), .T(n_enable), .O(my_signal));

Vivado IP的两种综合方式:Global 和 Out-Of-Context相关推荐

  1. Vivado使用心得(一)Vivado IP的两种综合方式:Global 和 Out-Of-Context

    ​在最新的Vivado的版本中,定制IP的时候,会有一个综合方式的选择,如下图所示.可以看到一种叫做"Global",一种叫"Out-Of-Context (OOC)&q ...

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

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

  3. Linux下IP地址两种修改方式的总结(IP地址、子网掩码、网关、DNS简介)

    目录 一.IP地址.子网掩码.网关.DNS简介 1.IP地址 2.子网掩码 3.网关 4.DNS 二.Linux下IP地址修改两种方式介绍(Centos7.6) 1.查看IP地址 2.修改配置文件修改 ...

  4. 使用vivado调用自定义IP的两种方法

    使用vivado调用自定义IP的两种方法 方法一:采用Creat Block Design以图形化界面方式,即原理图方式调用自定义IP,例如下图: 方法二:采用代码方式,即类似函数方式调用自定义IP, ...

  5. Vite内网ip访问,两种配置方式

    问题 使用vite运行项目的时候,控制台会只出现127.0.0.1(localhost)本地地址访问项目.不可以通过公司内网ip访问,其他团队成员无法访问,这是因为没有将服务暴露在局域网中: 两种解决 ...

  6. 获取用户手机IP的两种方式

    安卓获取用户手机IP有两种方式,一种是通过wifi获取,一种是通过GPRS获取. 第一种wifi方式获取: 1.首先设置用户权限 <uses-permission android:name=&q ...

  7. 一文读懂工业设备的两种通讯方式:现场总线和工业以太网

    随着传统制造企业正在加快智能制造转型的进程,工业互联网迅速在全世界范围内兴起.在工业互联网的技术构架中,通过各类通讯方式接入不同设备.系统和产品,来采集海量数据是其重要的一环.本文将重点介绍工业底层设 ...

  8. 前端与后端,顶象设备指纹的两种接入方式

    在如今的移动互联网时代,用户上网的设备多元化.连接互联网的渠道多样化.接入服务的地点任意化,用户的操作行为个性化,用户设备更加难以被识别和跟踪,由此给广大开展数字化业务的企业,尤其互联网企业带来全新的 ...

  9. GP两种连接方式性能测试

    GP两种连接方式性能测试 Pivotal java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedSta ...

最新文章

  1. 如何打开php页面跳转_php如何跳转页面
  2. html元素分类以及嵌套规则
  3. Android模拟位置出错IllegalArgumentException: Incomplete location object, missing timestamp or accuracy?
  4. 巧用定时任务监控第三方组件是否正常
  5. Android学习第三天--事件监听器
  6. 10 计算机组成原理第六章 总线 总线的概念与分类 总线性能指标 总线仲裁 总线操作和定时 总线标准
  7. 毕昇 JDK:“传奇再现”华为如何打造 ARM 上最好用的 JDK?
  8. 中国大学慕课python答案第七章_中国大学慕课mooc用Python玩转数据章节答案
  9. MiniProfiler 兼容 Entity Framework 6
  10. XDOC云服务API(二)
  11. SQL 2005 带自增列 带外键约束 数据导入导出
  12. 解决:Please either set ERLANG_HOME to point to your Erlang installation or place the RabbitMQ server d
  13. Seaborn 绘图中设置字体及大小
  14. 人生法则:蝴蝶效应、青蛙现象、鳄鱼法则、鲇鱼效应、羊群效应、刺猬法则...
  15. 逻辑回归损失函数推导及其模型的推导
  16. 6-3 计算Fibonacci数列每一项时所需的递归调用次数 (10 分)
  17. hive:函数:转换函数:cast
  18. GSI-PDP管网勘测综合数据处理软件操作手册
  19. Texpad for mac(专业的LaTeX编辑工具)
  20. 类加载器系列一:类加载器有几种以及它们之间的关系?

热门文章

  1. 智能车竞赛技术报告 | 智能车视觉 - 青岛工学院 - 青工战斗
  2. 智能车竞赛技术报告 | 智能车视觉 - 扬州大学 - 这辆盲车不吃水果
  3. Laplace数值逆运算的讨论
  4. 第十五届全国大学生智能车竞赛线上竞赛方案(草案)
  5. 虚拟摄像头 安卓版_林俊杰 ft. M.E.,联同视效大厂数字王国加码虚拟偶像
  6. java 使用http2.0_【Java】okhttp3如何发送http2请求?
  7. 服务器群安装系统,服务器安装总结
  8. oracle object_type,Oracle TYPE OBJECT详解 | 学步园
  9. pb分组数据累计_A轮公司数据分析面试经验
  10. php nsdata,iOS播放PCM,NSData流代码(Audio Queue Services)