Vivado当中的ooc与global模式

OOC-脱离上下文

ooc(out of context)是在Vivado当中非常常用的概念。在ug1118中关于ip_core OOC模式下的约束文件的描述中有两点:

OOC约束的USED_IN属性应该同时设置synthesis,implementation,out_of_context而不是只设置out_of_context;(page16)
OOC约束在编译的时候,处理顺序早于非OOC约束的文件,甚至早于PROCESSING_ORDER设置成EARLY的情况。(page16)
概述
这个方面最详细的内容在ug896的page36。Global和OOC本身是作为IP Package的generate output的生成选项存在的。

概述

简单一句话来概括两者的关系就是:在OOC模式下,IP成为了一个完全的黑盒结构,它会以网表结构参与整个工程的综合;而在Global模式下,IP核与顶层逻辑一起进行综合,也被称为Global synthesis,对原始文件的任何更改需要对整个工程和该IP进行重新综合。(参见ug939(v2016.1) Page30)

OOC是默认的IP生成产物的生成方式,生成产物包括:XCI文件,dcp文件,changelog,行为仿真文件(<ip_name>_sim_netlist.v,应该是用来封装网表黑盒的文件,此时应该只使用单独语言种类的仿真器(没说是不是应该对应)page40)。

DCP文件在其中最为重要(但是不能是只有dcp文件,见ug896,page36),dcp文件是一个容器,其中包含了网表和约束文件(_ooc.file和_in_context.xdc)。

在BD当中的OOC
Block design可以看做是IP的可视化的集合,相当于一个大的IP。这个东西也支持OOC模式,并且支持三个选项(参见ug995,v2016.4,page33),分别是Global,Out-of-Context per IP以及Out-of-context per BD。

OOC global综合差异

ooc和global只是IP的synthesis过程发生的时间点的差别,一个是预先synthesis,一个是跟整个工程一起synthesis。

无论是在哪个时间点综合,IP自身都是相对独立综合的,因为综合过程中IP的边界是自动加了dont_touch约束的。因此综合过程的优化差别也不大。

IP核重新generate,整个工程势必也是重新跑了一次,就是一次不同的布局布线而得到了一个不同的结果。

转载于:https://www.cnblogs.com/lafiizh/p/10548622.html

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值