Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Vivado OOC综合方式

Vivado OOC综合方式

作者头像
Lauren的FPGA
发布于 2019-10-31 06:12:03
发布于 2019-10-31 06:12:03
3.7K0
举报
文章被收录于专栏:Lauren的FPGALauren的FPGA

本质上,OOC(Out-of-Context)综合是一种自底向上(Bottom-up)的综合方法,可以应用于IP、IPI(IP Integrator)的Block Design以及用户逻辑。这里着重介绍如何对用户逻辑使用OOC综合方式。

在OOC模式下,模块可以有自己的约束文件,同时会单独生成该模块对应的DCP文件,且综合时不会插入IBUF或OBUF。

方法一:选中模块,单击右键,选择Set as Out-of-Context for Synthesis,如下图所示。

一旦模块被设定为OOC模式,会弹出如下对话框。

同时,在Sources窗口中,相应的模块前会有一个金色方框标记,以显示该模块用于OOC模式。

对于已经是OOC综合的模块,也可以取消其OOC模式,如下图所示。

方法二:在综合选项设置中添加-mode out_of_context,如下图所示。

该方法适用于将顶层设置为OOC模式,便于时序评估,因为OOC模式不会插入IBUF或OBUF,避免因为管脚不够用而无法布局布线。

使用OOC应注意的事项:

如果某模块下有Xilinx的IP,而该IP采用OOC综合方式,那么该模块就不能使用OOC综合方式,除非将该IP使用Global综合方式;

如果某模块内有parameter(Verilog)或generic(VHDL)定义的参数,该模块就不能采用OOC综合方式。

OOC综合方式的好处:

最明显的好处是节省编译时间,这是因为OOC模块综合只运行一次,只要代码没有改动,整个工程在执行综合时,已经生成DCP的OOC模块不会再执行综合。同时,对关键模块采用OOC综合方式还可能会改善时序,加速时序收敛。

结论

-OOC综合模式可以单独生成相应的DCP,从而节省编译时间;

-不是所有的模块都可以使用OOC综合方式

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-02-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Lauren的FPGA 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【Vivado那些事】OOC综合方式
之前有分析过Vivado中不弹出OOC综合方式窗口的解决方式,传送门《【每周一问】Vivado综合时突然OCC模式弹不出来了》,里面简单介绍了和Global方式的区别,但是没有更加深入,今天在更深入的介绍[OOC综合方式]。
碎碎思
2021/01/28
1.5K0
什么情况下要用OOC综合方式
实际上,除了Xilinx自带的IP,用户设计也可以根据需求选择不同的综合方式。相比于Global综合方式,OOC综合方式会带来以下好处。
Lauren的FPGA
2020/06/16
1.6K0
关于PR必须知道的几个基本术语
自底向上综合方式。在Vivado下,这种综合方式其实就是指OOC(Out-of-context)综合方式。采用该综合方式,Vivado会对相应的模块生成独立的网表文件(DCP),同时,不会对模块间的跨越逻辑做优化。
Lauren的FPGA
2019/10/30
2.8K0
Vivado Synthesis的各种流程
全局综合意味着整个设计在一个Synthesis Design Run流程中完成,这样会带来几个好处。一是使得综合工具能够最大化地进行设计优化,尤其是层次间的优化(这些优化是其他综合流程不能实现的)。二是对于综合后的设计分析带来了很大的便利。当然,其不足之处也是很明显的,那就是编译时间会很长。但这一不足之处可以借助增量综合得以缓解。需要注意的是因为是全局综合,所以XDC中描述的约束是以顶层为基准进行索引的。
Lauren的FPGA
2022/08/23
1.3K0
Vivado Synthesis的各种流程
Vivado 逻辑分析仪使用教程
本系列将带来FPGA的系统性学习,从最基本的数字电路基础开始,最详细操作步骤,最直白的言语描述,手把手的“傻瓜式”讲解,让电子、信息、通信类专业学生、初入职场小白及打算进阶提升的职业开发者都可以有系统性学习的机会。
FPGA技术江湖
2023/03/10
1.3K0
Vivado 逻辑分析仪使用教程
如果使用第三方综合工具,Xilinx IP…
第一步:如果明确使用第三方综合工具,那么对于IP应采用Manage IP的流程,如下图所示。这个方法本质上就是创建了一个IP工程,所有用到的IP都在此工程下被管理。
Lauren的FPGA
2020/08/10
8400
如果使用第三方综合工具,Xilinx IP…
在Vivado下利用Tcl实现IP的高效管理
在Vivado下,有两种方式管理IP。一种是创建FPGA工程之后,在当前工程中选中IP Catalog,生成所需IP,这时相应的IP会被自动添加到当前工程中;另一种是利用Manage IP,创建独立的IP工程,缺省情况下,IP工程的名字为magaged_ip_project。在这个工程中生成所需要的IP,之后把IP添加到FPGA工程中。Xilinx推荐使用第二种方法,尤其是设计中调用的IP较多时或者采用团队设计时。Tcl作为脚本语言,在FPGA设计中被越来越广泛地使用。借助Tcl可以完成很多图形界面操作所不能完成的工作,从而,可提高设计效率和设计自动化程度。Vivado对Tcl具有很好的支持,专门设置了Tcl Shell(纯脚本模式)和Tcl Console(图形界面模式)用于Tcl脚本的输入和执行。本文介绍了如何利用Tcl脚本在Manage IP方式下实现对IP的高效管理。
碎碎思
2020/10/30
3.3K0
在Vivado下利用Tcl实现IP的高效管理
DFX模式下如何读入模块的网表文件
DFX模式下要求在设计的顶层文件,每个RP对应的RM只以一个空的接口形式存在,这样对顶层综合时,RM就是黑盒子。而对每个RM要采用OOC的综合方式。OOC综合本质上就是工具不会对设计的输入/输出端口插入IBUF/OBUF,同时生成该模块对应的网表文件。不论是第三方工具还是Vivado都是如此。对RM执行OOC综合,这在DFX过程中是必要的。在后续布局布线时,工具要依次读入静态区的网表文件(RM为黑盒子)、每个RP对应的RM的网表文件,这样才能形成完整的网表文件。这就要求同一个RP下的所有RM的输入/输出端口必须完全相同,包括端口的名字、方式、位宽。那么一旦静态区的网表文件和动态区的RM的网表文件准备好之后,如何读入以便Vivado后续执行布局布线?这里我们给出三种可行方法。
Lauren的FPGA
2023/09/27
2680
DFX模式下如何读入模块的网表文件
DFX设计中的常见问题
DFX(Dynamic Function eXchange)的前身是PR(部分可重配置,Partial Reconfiguration)。使用DFX这个名字更能准确描述其功能,即在线切换设计中某个模块的功能。我们把这个模块对应的FPGA物理区域称之为一个可重配置分区(RP,Reconfigurable Partition)。同一个RP下可动态切换的模块称之为可重配置模块(RM,Reconfigurable Module)。一个RP下可以有一个或多个RM。每个RP要通过手工布局(画Pblock)的方式指定其在FPGA中的具体位置和大小(位置约束+面积约束)。
Lauren的FPGA
2023/09/24
7460
DFX设计中的常见问题
图解Vivado HLS设计流程
在ESL(ElectronicSystem Level)阶段,典型的特征之一就是采用高层次语言完成设计。这里的“高层次”是相对于传统的RTL语言(VHDL/Verilog)而言。Xilinx有专门的高层次综合工具Vivado HLS,可支持C、C++和System C做为设计输入。
Lauren的FPGA
2019/10/31
2.1K0
从多图对比看Vivado与ISE开发流程的差异
对 Vivado 和它的前一代设计套件,ISE 做一个组件功能上的平行比较和总结是很有用的。其目的是让那些具有在 ISE 下工作经验 (但是不具有 Vivado 下经验)的人能够更快的适应新工具的各个特性。详细信息见下表。
碎碎思
2020/09/02
4.3K0
Vivado综合设置选项分析:-shreg_min_size和-no_srlextract
Xilinx FPGA SliceM中的LUT可以配置为移位寄存器(ShiftRegister)。以UltraScale芯片为例,SliceM中的8个LUT可级联构成深度为256的移位寄存器而不会消耗额外的触发器。移位寄存器的工作原理如下图所示(此图只是工作原理并非真实架构)。通过adddr的控制可实现移位深度的动态切换。
Lauren的FPGA
2019/10/31
3K0
Xilinx FPGA Partial Reconfiguration 部分重配置 详细教程
  Partial Reconfiguration(部分重配置)在现在的FPGA应用中越来越常见,我们这次的教程以Project模式为例来说明部分重配置的操作过程。
猫叔Rex
2020/06/30
1.6K0
Xilinx FPGA Partial Reconfiguration 部分重配置 详细教程
如何给每个RM添加约束?
在DFX设计中,我们也会碰到类似的情形,即给同一个RP(Reconfigurable Partition)下的不同RM(Reconfigurable Module)添加不同的约束。这时要考虑几个因素:同一个RP下不管有几个RM,在设计中均对应同一个实例化的名字。这意味着不能仅仅通过SCOPE_TO_CELLS将这些约束对应到不同的RM上。另外,每个RM只有在自身对应的configuration上才有效,所以要保证在这个configuration上对应的RM的约束也要有效。从下图可以看到,当前这个DFX设计中有一个RP,名字为图中红色方框所示,该RP下有两个RM,分别为rp1rm1和rp1rm2。
Lauren的FPGA
2023/08/18
2540
如何给每个RM添加约束?
Vivado Non-Project MODE Tcl Commands
1 read_edif:将EDIF或NGC网表文件导入当前项目的“设计源”文件集。
FPGA开源工作室
2020/02/14
2.2K0
Vivado Non-Project MODE Tcl Commands
Vivado 2019.1新特性(3):增量综合
自增量布局布线之后,Xilinx在Vivado 2019.1版本中正式发布了增量综合。可以借助Tcl脚本完成,也可以在图形界面下完成,其流程和增量布局布线很类似。
Lauren的FPGA
2019/10/30
2K0
Vivado® ML 版,让设计更智能化
赛灵思近日宣布推出 Vivado® ML 版,这是业内首个基于机器学习(ML )优化算法以及先进的面向团队协作的设计流程打造的 FPGA EDA 工具套件,可以显著节省设计时间与成本,与目前的 Vivado HLx 版本相比,Vivado ML 版将复杂设计的编译时间缩短了 5 倍,同时还提供了突破性的平均达 10% 的结果质量( QoR )提升。
碎碎思
2021/07/16
1K0
用Tcl实现Vivado设计全流程(1)
Vivado有两种工作模式:project模式和non-project模式。这两种模式都可以借助VivadoIDE或Tcl命令来运行。相比之下,VivadoIDE给project模式提供了更多的好处,而Tcl命令使得non-project模式运行起来更简单。
Lauren的FPGA
2020/10/27
3.1K0
用Tcl实现Vivado设计全流程(1)
Vivado设计锁定与增量编译(附工程)
该部分引用本公众号上一篇时序约束文章中的内容,在Quartus中采用逻辑锁定的办法来解决FPGA和外部接口的时序问题,也就是输入输出的寄存Rxd/Txd的寄存器到外部器件寄存器的时序问题。
网络交换FPGA
2019/10/29
2.5K0
Vivado设计锁定与增量编译(附工程)
Vivado综合属性:ASYNC_REG
在异步跨时钟域场合,对于控制信号(通常位宽为1-bit)常使用双触发器方法完成跨时钟域操作,如下图所示。此时对于图中标记的1号和2号触发器需要使用综合属性ASYNC_REG,有两个目的:
Lauren的FPGA
2019/10/31
3.2K0
相关推荐
【Vivado那些事】OOC综合方式
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档