创建综合运行

一个“运行(run)”是指定义和配置设计在综合过程中的各方面,包括:使用 的Xilinx器件、应用的约束集、启动单个或多个综合的选项、控制综合引擎结果的选项。点击Flow菜单中的Create Funs,或在Design Runs窗口中:

点击工具栏中的+,即可打开新建运行窗口:

选择Synthesis,点击Next,打开配置综合运行的窗口:

设置综合名称、约束、器件和综合策略,如果希望该运行为激活状态,则选中Make Active。运行的默认名称为synth_1、synth_2等等。点击Next弹出启动运行窗口:

Launch directory选择启动运行的目录;Number of jobs设置了可以同时启动多少个运行(run);Generate scripts only表示仅生成运行脚本(Windows下为bat文件,Linux下为sh文件);Do not launch now只会保存先前的设置,暂时不会启动运行。运行的相关情况都显示在Design Runs窗口中:

该窗口显示了工程中所有的综合和实现运行,进行配置、管理和启动。一个综合运行可以包含多个实现运行,窗口中报告了相关的运行状态(not started、in progress、complete或out-of-date)。修改源文件、约束或工程设置都会导致状态变为out-of-date ;

虽然可以有多个综合和实现运行,但是都只能有一个为active状态,所有的报告显示的都是active运行的相关信息。比如Project Summary窗口中的编译、资源等总结信息都属于当前状态为active的运行。选择一个运行,右键->Make Active可以设置活跃状态;

三种运行综合的办法:



使用OOC综合技术 

OOC(Out-of-context)是Vivado提供的一项技术,选择将HDL对象当作一个隔离模块运行,完成自底向上的综合流程,本质上是一种自底向上的综合方式;

OOC具有如下特点:

  • 底层的OOC模块相对于顶层模块独立运行,并且拥有自己的约束集;
  • 运行了OOC模块之后,再运行顶层模块综合时可以直接调用OOC综合结果,而不需要重新运行一次综合(除非修改了RTL设计或约束)

模块设置为OOC综合方式可以大幅度减少综合的运行时间!!

选择需要添加到OOC运行的模块,右键->Set As Out-Of-Context for Synthesis,弹出如下窗口:

其中Clock Constraint File必须创建一个新的XDC文件或在下拉菜单中选择一个已经存在的XDC文件,该约束文件中要有该模块时钟信号的相关约束。点击OK后,该模块会出现在Design Runs窗口的Out-of-Context Module Runs目录中,还有Compile Order窗口的Block Sources目录中;

当运行了OOC综合后,会产生底层模块的综合网表存根文件stub文件)。存根文件仅描述了底层模块的输入和输出,在综合顶层模块时,通过存根文件来调用底层模块,模块内部当作黑盒子看待。运行实现时,Vivado会将OOC模块的综合网表插入到顶层网表中,从而完成设计;


导入网表文件

可以通过实例化低层次网表或第三方网表来手工构造一个自底向上的设计流程。但需要知道,Vivado综合工具不会综合和优化网表,因此XDC约束和综合属性也不会对导入的网表产生作用。事实上,Vivado综合时既不会读取也不会修改网表中的内容。可以按照如下流程完成相关处理:

  1. 创建低层次网表:创建一个工程,以要导入的网表作为顶层模块,将Settings->Synthesis->More Options设置为-mode out_of_context。这样综合时不会为该模块产生I/O缓存器。综合后,在Tcl控制台输入write_edif name.edf。
  2. 设计中实例化低层次网表:顶层设计需要将低层次模块作为黑盒子实例化,类似于前面提到的stub文件。因此需要创建一个Verilog/VHDL文件,仅定义网表的端口,信号名称必须与网表中的端口名称完全匹配。
  3. 组合为完整设计:当创建了OOC模式的低层次网表,并且在顶层设计中正确地实例化后,将第一步导出的edif网表添加到工程中。综合后,Vivado会将网表合并到顶层设计中

Vivado IP和第三方综合工具

大多数Xilinx发布的IP核采用IEEE P1735进行加密,只有Vivado综合工具才支持对IP核的综合,第三方综合工具不能综合Vivado中的IP核。如果想把Vivado中的IP核在第三方综合工具中实例化,可以参考如下步骤:

  1. 在Managed IP工程中(Vivado首页->Tasks->Manage IP)创建并配置好IP核。
  2. 生成IP核的输出文件,包括综合设计检查点(DCP文件)。Vivado会创建一个stub文件(*_stub.v/*_stub.vhd),该文件会包含一些指令阻止从该文件中推断出I/O缓存器。根据使用的第三方综合器可能需要修改此文件。
  3. 使用Vivado综合带有stub文件的Xilinx IP核。
  4. 使用第三方综合工具产生的网表和Xilinx IP核的DCP文件一起运行实现步骤

Vivado使用技巧(2):综合运行与OOC相关推荐

  1. Vivado使用技巧(22):综合策略与设置的选择

    综合(Synthesis)是指将RTL设计转换为门级描述.Vivado开发套件中的综合工具是一款时序驱动型.专为内存使用率和性能优化的综合工具,支持System Verilog 2012.Verilo ...

  2. Vivado使用技巧(1):综合策略与设置的选择

    综合(Synthesis)是指将RTL设计转换为门级描述.Vivado开发套件中的综合工具是一款时序驱动型.专为内存使用率和性能优化的综合工具,支持System Verilog 2012.Verilo ...

  3. android减少动态效果,【技巧】手机运行变慢?试试这些办法!

    原标题:[技巧]手机运行变慢?试试这些办法! 手机运行变慢! 遇到这种情况会不会非常想摔机? 或者考虑换新手机? 别着急,快来试试这些办法! 减弱动态效果 酷炫逼真的动态效果固然吸引人,但如果手机内存 ...

  4. Linux Shell常用技巧(九) 系统运行进程

    Linux Shell常用技巧(九) 系统运行进程 十九.  和系统运行进程相关的Shell命令:         1.  进程监控命令(ps):       要对进程进行监测和控制,首先必须要了解当 ...

  5. 【23招实用技巧让XP运行更快捷更可靠】

    以往我们经常使用"碎片整理"使Windows运行的更快.但现在市场上出售的7200转硬盘,在寻道和传输两方面做了改进,有很多型号还附带有一个8M缓存,而且WinXP使用的NTFS文 ...

  6. VIVADO使用技巧(1):DDR3设置DCI与内部参考电压

    版权声明:本文为FPGADesigner原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:Vivado使用技巧(12):设置DCI与内部参考电压_FPGA ...

  7. 面向多领域交通监测业务快速开发部署的交通综合运行协调指挥系统(TOCC)关键技术研究与实践...

    面向多领域交通监测业务快速开发部署的交通综合运行协调指挥成果的研究,主要从数据层.技术层.应用层和综合监测层进行技术研究,实现"三屏联动监测"."四层结构设计" ...

  8. Vivado使用技巧(24):HDL/XDC中设置综合属性

    Vivado综合工具支持直接在RTL文件或XDC文件中设置综合属性.如果Vivado识别出设置的属性,会创建与之相关的逻辑电路:如果不能识别设置的属性,会将该属性和值存放在生成的网表中.因为某些属性, ...

  9. 综合布线五大技巧与综合布线规范详解

    1. 要确认电缆的拉力 当电缆在两个终端有多余时,应该按照需要的长度将其剪断,而不应将其卷起并捆绑起来.电缆的接头处反缠绕开的线段距离不应超过2厘米.过长会引起较大的近端串扰.在进行认证测试的时候,N ...

  10. Vivado使用技巧(26):HDL编写技巧

    在Vivado中进行HDL代码设计,不仅需要描述数字逻辑电路中的常用功能,还要考虑如何发挥Xilinx器件的架构优势.目前常用的HDL语言有三种.VHDL语言的优势有: 语法规则更加严格: 在HDL源 ...

最新文章

  1. python2中文导致的错误
  2. AngularJS中实现无限级联动菜单(使用demo)
  3. python实时监控文件大小_python实现实时监控文件的方法
  4. opencv配置_Opencv在vs2012下的配置
  5. kotlin 查找id_Kotlin程序查找等边三角形的区域
  6. 王道计算机考研课件,王道考研计算机组成原理课件ppt
  7. 基于函数的二叉树的描述
  8. 风控贷中环节应该监控哪些风险指标
  9. Python 学习第十七天 jQuery
  10. java ab性能测试,服务器JAVA性能测试——SPECjbb2005
  11. java模拟浏览器请求HttpUtils,可秒杀京东优惠券
  12. [渝粤教育] 西南科技大学 铁路交通信号控制 在线考试复习资料
  13. java add two numbers_两数相加(Add Two Numbers)
  14. 邵国际: C 语言对象化设计实例 —— 命令解析器
  15. Win10 Anaconda Prompt 快捷方式恢复
  16. 学习自媒体究竟要投入多少?
  17. 如何得到信号的幅度谱和相位谱
  18. 2020年10月计算机语言排名,最新!2020年10月编程语言排行榜出炉
  19. Android studio虚拟器突然黑屏解决办法
  20. 8个你最想知道的数据中台问题,我们这次聊个透

热门文章

  1. 傻傻分不清楚?深入探讨 filter 与 backdrop-filter 的异同
  2. Android 双卡双待
  3. 《第五项修炼》读后感
  4. 镜头调制传递函数MTF
  5. ANE实现总结(一)
  6. 腾讯微云和坚果云哪个好用?
  7. OpenSSH 用户枚举漏洞(CVE-2018-15919)服务器修复方法(亲测实用)
  8. net域名和com域名在属性和价值上有什么不同?
  9. 转载 2015A国赛优秀论文
  10. 77 关于 java.util.concurrent.RejectedExecutionException:Thread limit exceeded replacing blocked worker