0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Vivado使用技巧分享:OOC综合技术运行流程

电子设计 ? 来源:CSDN 博主 ? 作者:FPGADesigner的博客 ? 2021-01-02 09:03 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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

o4YBAF9uIvaAJx_cAABLFGO4fo4358.png

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

pIYBAF9uIviATYemAACONvLvDRU169.png

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

pIYBAF9uIvmAPVxqAABnSnw_Kno694.png

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

pIYBAF9uIvqAOmfuAABdFjij23U942.png

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

o4YBAF9uIvyAEpA-AABMQ7HyC0Q273.png

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

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

同样,Flow Navigator和Flow菜单中的Run Synthesis也是启动状态为Active的运行。如果需要启动其它运行,只能通过Design Runs窗口。

使用OOC综合技术
OOC(Out-of-context)是Vivado提供的一项技术,选择将HDL对象当作一个隔离模块运行,完成自底向上的综合流程。OOC具有如下特点:

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

由于不需要每次综合时都运行整个设计,这项技术可以大大减少顶层模块的综合运行时间。IP核就是典型的采用OOC技术的代表,配置好IP核后可以选择综合模式为global(与顶层设计一起综合)或Out-of-context(作为独立模块综合),最好的做法就是选择后者,以减少整体设计的综合运行时间。

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

pIYBAF9uIv2ADGhNAABR_wuSsjU374.png

其中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文件一起运行实现步骤。

编辑:hfy


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Xilinx
    +关注

    关注

    73

    文章

    2185

    浏览量

    127166
  • WINDOWS
    +关注

    关注

    4

    文章

    3618

    浏览量

    91770
  • Vivado
    +关注

    关注

    19

    文章

    835

    浏览量

    69170
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Vivado无法选中开发板的常见原因及解决方法

    对应的器件信息和约束文件(XDC),大大简化工程初始化流程。然而,在某些情况下,我们可能会发现 Vivado 的界面中无法选中目标开发板,导致只能手动选择器件。那么,遇到这种情况该如何处理呢?
    的头像 发表于 07-15 10:19 ?597次阅读
    <b class='flag-5'>Vivado</b>无法选中开发板的常见原因及解决方法

    电缆隧道综合监测的技术应用分析

    实现电缆隧道综合监测的手段需要涵盖多维度技术集成与智能化管理,才能保障电缆隧道综合监测的全面有效性。选择适合的技术手段,不仅需要从监测技术
    的头像 发表于 06-10 10:53 ?294次阅读
    电缆隧道<b class='flag-5'>综合</b>监测的<b class='flag-5'>技术</b>应用分析

    如何使用One Spin检查AMD Vivado Design Suite Synth的结果

    本文讲述了如何使用 One Spin 检查 AMD Vivado Design Suite Synth 的结果(以 Vivado 2024.2 为例)。
    的头像 发表于 05-19 14:22 ?614次阅读
    如何使用One Spin检查AMD <b class='flag-5'>Vivado</b> Design Suite Synth的结果

    适用于Versal的AMD Vivado 加快FPGA开发完成Versal自适应SoC设计

    设计、编译、交付,轻松搞定。更快更高效。 Vivado 设计套件提供经过优化的设计流程,让传统 FPGA 开发人员能够加快完成 Versal 自适应 SoC 设计。 面向硬件开发人员的精简设计流程
    的头像 发表于 05-07 15:15 ?670次阅读
    适用于Versal的AMD <b class='flag-5'>Vivado</b>  加快FPGA开发完成Versal自适应SoC设计

    Vivado HLS设计流程

    为了尽快把新产品推向市场,数字系统的设计者需要考虑如何加速设计开发的周期。设计加速主要可以从“设计的重用”和“抽象层级的提升”这两个方面来考虑。Xilinx 推出的 Vivado HLS 工具可以
    的头像 发表于 04-16 10:43 ?883次阅读
    <b class='flag-5'>Vivado</b> HLS设计<b class='flag-5'>流程</b>

    一文详解Vivado时序约束

    Vivado的时序约束是保存在xdc文件中,添加或创建设计的工程源文件后,需要创建xdc文件设置时序约束。时序约束文件可以直接创建或添加已存在的约束文件,创建约束文件有两种方式:Constraints Wizard和Edit Timing Constraints,在综合
    的头像 发表于 03-24 09:44 ?3634次阅读
    一文详解<b class='flag-5'>Vivado</b>时序约束

    e203在vivado硬件里自定义指令识别为非法指令怎么解决?

    e203自定义指令硬件模块设计,修改内核,综合没错误,软件也修改工具链通过并产生verilog文件,但在vivado硬件里自定义指令识别为非法指令怎么解决
    发表于 03-07 07:34

    Vivado Design Suite用户指南:逻辑仿真

    电子发烧友网站提供《Vivado Design Suite用户指南:逻辑仿真.pdf》资料免费下载
    发表于 01-15 15:25 ?0次下载
    <b class='flag-5'>Vivado</b> Design Suite用户指南:逻辑仿真

    Vivado之实现布局布线流程介绍

    一、前言 本文将介绍Vivado进行综合,以及布局布线的内部流程,熟悉该流程后结合Settings中对应的配置选项,对于时序收敛调试将更具有针对性。 二、Implementation(
    的头像 发表于 12-06 09:08 ?1936次阅读
    <b class='flag-5'>Vivado</b>之实现布局布线<b class='flag-5'>流程</b>介绍

    U50的AMD Vivado Design Tool flow设置

    AMD Alveo 加速卡使用有两种流程,AMD Vitis Software Platform flow 和 AMD Vivado Design Tool flow。比较常见的是 Vitis
    的头像 发表于 11-13 10:14 ?1008次阅读
    U50的AMD <b class='flag-5'>Vivado</b> Design Tool flow设置

    每次Vivado编译的结果都一样吗

    很多FPGA工程师都有这种困惑,Vivado每次编译的结果都一样吗? 在AMD官网上,有这样一个帖子: Are Vivado results repeatable for identical
    的头像 发表于 11-11 11:23 ?1389次阅读
    每次<b class='flag-5'>Vivado</b>编译的结果都一样吗

    Vivado使用小技巧

    有时我们对时序约束进行了一些调整,希望能够快速看到对应的时序报告,而又不希望重新布局布线。这时,我们可以打开布线后的dcp,直接在Vivado Tcl Console里输入更新后的时序约束。如果调整
    的头像 发表于 10-24 15:08 ?1116次阅读
    <b class='flag-5'>Vivado</b>使用小技巧

    Vivado 2024.1版本的新特性(2)

    综合角度看,Vivado 2024.1对SystemVerilog和VHDL-2019的一些特性开始支持。先看SystemVerilog。
    的头像 发表于 09-18 10:34 ?2045次阅读
    <b class='flag-5'>Vivado</b> 2024.1版本的新特性(2)

    Vivado 2024.1版本的新特性(1)

    Vivado 2024.1已正式发布,今天我们就来看看新版本带来了哪些新特性。
    的头像 发表于 09-18 10:30 ?2602次阅读
    <b class='flag-5'>Vivado</b> 2024.1版本的新特性(1)

    变电所运行维护的流程措施

    为了确保电网的稳定运行和高效供电,变电所的运行与维护工作至关重要,这些工作不仅需要专业的技术知识,还需要细致的操作规程和严格的管理制度。以下详细介绍变电所运行维护的几个关键环节及其执行
    的头像 发表于 08-30 11:05 ?1708次阅读