vivado 增量实施

news2024/11/12 20:30:24

增量实施

增量实现是指增量编译的实现阶段设计流程:

•通过重用参考设计中的先前布局和布线,保持QoR的可预测性。

•加快地点和路线的编制时间或尝试最后一英里的计时关闭。

下图提供了增量实现设计流程图。该图还说明了增量合成流程。有关增量的更多详细信息合成流程,请参阅Vivado Design Suite用户指南中的“增量合成”部分:合成(UG901)。

增量实施术语

增量流使用以前运行的变体以及当前设计变体。在里面为了保持清晰的理解,使用了以下术语:

参考设计

参考设计优选地是来自相同的最近迭代的完全路由检查点设计要使用不同的设计变体,重要的是参考设计与增量设计相匹配。虽然可以将放置的检查点用作作为参考,与路由检查点相比,效益会降低;计时将不那么一致,编译时间会更高。参考设计必须与设备相匹配,建议与工具版本相匹配但不是一个严格的要求。

增量设计

增量设计是要通过实现工具运行的更新设计。它可以包括RTL更改、网表更改或两者兼而有之,但这些更改通常应小于5%。在发出read_checkpoint-incremental命令之前,不知道正在使用增量实现流。因此,重要的是不要引入当与参考设计进行了比较。允许更改约束条件,但约束条件的普遍收紧将产生重大影响放置和路由,并且通常最好添加到增量流之外。运行增量地点和路线将增量设计加载到内存中后,通过加载使用read_checkpoint-incredential<dcp>命令参考设计检查点。Vivado读取参考检查点后,将采取以下操作:

•与参考运行中的物理优化相匹配的物理优化是在自动增量设计。

•将增量设计中的网表与参考设计进行比较,以确定匹配细胞和网。

•重复使用参考设计检查点的放置,将匹配单元格放置在增量设计。

•路由被重新用于在每个负载引脚的基础上路由匹配网络。如果负载销由于如果网表发生更改,则其路由将被丢弃,否则将被重用。有可能部分重复使用的路由。如果它提高了性能或有助于可路由性。参考设计和当前设计之间不匹配的设计对象为在增量放置完成后放置,并在布线完成后布线。

增量模式

当用户选择增量模式时,该工具可能仍然无法运行完整的增量流,如果它确定设计更改过多。增量实施通常运行如果细胞重复使用率高于80%。所选流量为:

•使用增量优化算法的完整位置和路线。放置和布线尽可能多地重复使用。目标WNS由以下两者的组合确定引用检查点和指令。根据提供的指令选择指令到read_checkpoint-incremental-directional<directional>开关。

•使用默认算法的完整位置和路线。放置和布管不会重复使用。目标WNS始终为0.000。指令取自提供给以下任意一个的指令开关place_design-指令<directive>或route_design-指令<指令>命令。

这一决定是在设计修改和小区匹配过程之后做出的read_checkpoint-增量命令。由于此评估是在更改后进行的设计是为了改进匹配,因此它与运行纯默认流不同这些变化是持久的。当进入增量模式时,可以看到以下消息:

INFO: [Place 46-42] Incremental Compile tool flow is being used. Default
place and route algorithms are bypassed.

自动增量

自动增量实现旨在利用的更快编译时间增量实施,同时不影响WNS等结果的质量。它是的子集具有更严格控制的完整增量流量,以确保性能不会降低。它有效符合以下标准:

1.仅当WNS>=-0.250 ns时才更新参考检查点。这只是主动的以项目模式管理。在非项目流中,用户必须遵循下面提供的脚本。

2.在read_checkpoint-incremental期间为WNS和重用设置更高的目标阶段

•94%的细胞匹配

•90%的净匹配

•WNS>=-0.250 ns

使用以下命令激活流:

read_checkpoint -incremental -auto_incremental <reference>.dcp

更新检查点时,以下脚本将确保WNS没有降级超出可接受的限度:

if {[get_property SLACK [get_timing_path]] > -0.250} {
file copy -force <postroute>.dcp <reference>.dcp
}

增量指令

有三个指令可以控制增量流的行为。增量指令使用命令设置:

read_checkpoint -incremental -directive <directiveName> <reference>.dcp

运行时间优化

RuntimeOptimized指令试图重复使用来自参考运行尽可能。计时目标将与参考运行相同。如果参考运行的WNS为-0.050,则增量运行不会尝试关闭此时间设计,而且也以-0.050为目标。这只会影响设置时间。这是默认行为当没有指定指令时。

计时结束

TimingClosure指令将重用引用中的放置和布线,但它会撕毁不符合时间安排的路径,并尝试关闭它们。运行一些运行时密集型算法以获得尽可能多的时间改进,但由于位置很大程度上被提前放弃收益有限。该技术在参考WNS>-0.250 ns的设计中是有效的。

注意:为了获得更多的关闭时间,请运行report_qor_advances以生成自动设计增强。

快的

快速是一种特殊模式,在放置和路线期间不调用计时器,而是使用相关逻辑的放置作为指导。这是最快的模式,但不适用于大多数设计。设计需要WNS>1.000 ns才能有效。这些通常是ASIC仿真或原型设计。

注意:在2019.1及之前的版本中,通过的指令映射实现了相同的行为place_design和route_design。Explore指令已映射到TimingClosure,Quick映射到映射到RuntimeOptimized的Quick和其他指令。

小心!从2019.1及更早版本升级的用户,他们正在为指定Explore或Quick指令place_design将需要指定增量指令以实现中的等效功能2020.1.

其他选项

使用read_checkpoint-incremental时,以下选项可用命令

-auto_incremental选项

这将启用自动增量中所述的自动增量流。

-fix_objects Option
-fix_objects <cell objects>

-fix_objects选项可用于锁定单元格的子集。这些细胞不会被增量放置和布线工具。-fix_objects选项仅适用于匹配并且被识别用于小区重用。

示例

以下是-fix_objects用法的示例:

•要重用所有对象并仅修复块内存位置,请执行以下操作:

read_checkpoint -incremental routed.dcp -fix_objects [all_rams]
• To reuse all objects and fix only DSP placement:
read_checkpoint -incremental routed.dcp -fix_objects [all_dsps]

-force_incr选项

-force_incr选项可用于强制增量实现流而与递增标准检查无关。如果未指定增量实现流可能退出并以非增量流或默认流继续。可以使用此选项,而不是修改增量实现配置更新中的小区匹配、网络匹配和WNS的最小阈值的值自动递增流量。

注意:-force_incr仅与-increative开关一起使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1536003.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于springboot+vue的毕业论文管理系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

文献速递:深度学习乳腺癌诊断---使用深度学习改善乳腺癌诊断的MRI技术

Title 题目 Improving breast cancer diagnostics with deep learning for MRI 使用深度学习改善乳腺癌诊断的MRI技术 01 文献速递介绍 乳腺磁共振成像&#xff08;MRI&#xff09;是一种高度敏感的检测乳腺癌的方式&#xff0c;报道的敏感性超过80%。传统上&#xff0c;其…

CorelDRAW2024中文最新版本新增功能及更新日志

作为一名软件工程师&#xff0c;对于各种软件&#xff0c;尤其是图形设计软件&#xff0c;如CorelDRAW的最新版本信息通常会有所了解。CorelDRAW作为一款功能强大的图形设计软件&#xff0c;其2024中文版的发布无疑为设计师们带来了全新的体验。以下是我为你整理的关于CorelDRA…

20240309web前端_第二周作业_完成游戏导航栏

作业&#xff1a;游戏导航栏 成果展示&#xff1a; 完整代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0…

Docker构建多平台(x86,arm64)构架镜像

这里写自定义目录标题 背景配置buildx开启experimental重启检查 打包 背景 docker镜像需要支持不同平台架构 配置buildx 开启experimental vi /etc/docker/daemon.json {"experimental": true }或者 重启检查 # 验证buildx版本 docker buildx version# 重启do…

策略路由PBR

PBR策略路由_路由环路policy-based-routeing 1、路由策略&#xff1a; 首先要了解什么是路由策略&#xff1a;首先需要在路由器上运行路由协议&#xff0c;然后在路由协议进程中通过某些工具&#xff0c;对路由进行策略修改&#xff0c; 比如通过filter-policy import-route…

【规范】小程序发布,『小程序隐私保护指引』填写指南

前言 &#x1f34a;缘由 『小程序隐私保护指引』小程序发布&#xff0c;每次都躲不开&#xff01; &#x1f3c0;事情起因&#xff1a; 最近在帮朋友弄一个小项目&#xff0c;uniappunicloud壁纸小程序。虽然之前做过不少小程序&#xff0c;但是每次发布正式版本时都有一步『…

kafka面试篇

消息队列的作用&#xff1a;异步、削峰填谷、解耦 高可用&#xff0c;几乎所有相关的开源软件都支持&#xff0c;满足大多数的应用场景&#xff0c;尤其是大数据和流计算领域&#xff0c; kafka高效&#xff0c;可伸缩&#xff0c;消息持久化。支持分区、副本和容错。 对批处理…

python四川火锅文化网站的设计与实现flask-django-php-nodejs

四川火锅文化网站的目的是让使用者可以更方便的将人、设备和场景更立体的连接在一起。能让用户以更科幻的方式使用产品&#xff0c;体验高科技时代带给人们的方便&#xff0c;同时也能让用户体会到与以往常规产品不同的体验风格。 与安卓&#xff0c;iOS相比较起来&#xff0c;…

Android ViewPager不支持wrap_content的原因

文章目录 Android ViewPager不支持wrap_content的原因问题源码分析解决 Android ViewPager不支持wrap_content的原因 问题 <androidx.viewpager.widget.ViewPagerandroid:id"id/wrap_view_pager"android:layout_width"match_parent"android:layout_he…

QT6 android下配置文件打包到APK

一.遇到问题 用QT做android开发&#xff0c;生成的apk文件默认不包含程序配置文件和png文件&#xff0c;导致程序在android上无法读取必要的参数和logo&#xff0c;本文主要解决这个问题&#xff0c;并详细讲述QT android 的apk程序打包流程。 二.APK打包流程 1.如何生成APK 当…

STM32关于使用定时器触发ADC转换的理解

以STM32 ADC的常规通道为例&#xff08;注入通道类似&#xff09;&#xff1a; 如上图&#xff0c;STM32 ADC的常规通道可以由以上6个信号触发任何一个&#xff0c;我们以使用TIM2_CH2触发ADC1&#xff0c;独立模式&#xff0c;每次仅测一条通道&#xff0c;则ADC的配置如下&am…

2023年最受欢迎的编程语言排行榜 —— Python位居榜首,但对你来说未必是最佳选择

本文的编程语言热度统计数据来自《IEEE Spectrum》&#xff0c;《IEEE Spectrum》杂志是IEEE&#xff08;美国电气电子工程师学会&#xff09;的旗舰出版物&#xff0c;探讨了新技术的发展、应用和影响。它预测工程、科学和技术的趋势&#xff0c;并为理解、讨论和领导这些领域…

扩容分区和文件系统(Linux)

在ECS控制台上扩容云盘容量后&#xff0c;对应分区和文件系统并未扩容&#xff0c;您还需要进入ECS实例内部继续扩容云盘的分区和文件系统&#xff0c;将扩容部分的容量划分至已有分区及文件系统内&#xff0c;使云盘扩容生效。本文为您介绍如何通过两个步骤完成Linux实例云盘的…

牛客NC403 编辑距离为一【中等 模拟法 Java,Go,PHP】

题目 题目链接&#xff1a; https://www.nowcoder.com/practice/0b4b22ae020247ba8ac086674f1bd2bc 思路 注意&#xff1a;必须要新增一个&#xff0c;或者删除一个&#xff0c;或者替换一个&#xff0c;所以不能相等1.如果s和t相等&#xff0c;返回false,如果s和t长度差大于1…

搜维尔科技:利用增强现实改进检验和质量控制流程

直接在工作环境中显示数字指令 DELMIA 质量检查增强体验通过工作环境中的数字指令指导操作员完成检查过程&#xff0c;从而有效地识别、鉴定和报告不合格项。使用增强现实可以显着提高质量控制和检查过程的准确性和速度。由于技术人员可以访问实时信息&#xff0c;因此他们会减…

NX二次开发——获取当前dll的全路径,上一级路径和名称

在nx二次开发中经常会用到dll的全路径&#xff0c;上一级路径和名称&#xff0c;这里我对其进行封装&#xff0c;方便以后调用。 关键代码&#xff1a; //头文件 #include <Windows.h> #include <atlbase.h>//获取当前dll所在的文件夹(mode:0-全路径名&#xff0…

K8s-网络原理-中篇

引言 本文是《深入剖析 K8s》的学习笔记&#xff0c;相关图片和案例可从https://github.com/WeiXiao-Hyy/k8s_example中获取&#xff0c;欢迎 ⭐️! 上篇主要介绍了 Flannel 插件为例&#xff0c;讲解了 K8s 里容器网络和 CNI 插件的主要工作原理。还有一种“纯三层”的网络方…

数值分析(三) Lagrange(拉格朗日)插值法及Matlab代码实现

目录 前言一、Lagrange&#xff08;拉格朗日&#xff09;插值1. 线性插值2. 抛物插值3. 拉格朗日插值多项式 二、Lagrange插值算法及matlab代码1. Lagrange 插值算法matlab实现2 实例3. 线性插值示意图代码4. 抛物插值示意图代码 三、总结四、插值法专栏 前言 本篇为插值法专栏…

C语言内存函数之 memcmp函数

memcmp函数的记忆&#xff1a;mem表示内存&#xff0c;单位是字节&#xff0c;表示以单位字节来进行操作&#xff1b;头文件是string.h&#xff0c;cmp是compare的缩写&#xff0c;表示比较。总的意思就是在规定的内存下以字节为单位一个字节一个字节的进行比较。 memcmp函数的…