vivado实现分析与收敛技巧1

智能设计运行
智能设计运行 (IDR) 是一种特殊类型的实现运行 它使用复杂流程来尝试达成时序收敛。由于 IDR 可能较为激进 因此预计编译时间可达标准运行的约 3.5 倍。
IDR 围绕复杂的时序收敛功能特性展示了一个简单的用户界面 对于大部分设计 它所达成的结果与 FPGA 专家不相上下。
1、概述
适用于时序收敛的 Intelligent Design Run 智能设计运行 是一种激进的时序收敛实现 其运行的唯一目的就是达成时序收敛。在此过程中功耗和编译时间均不予考虑, 但凭借节省使用率可以达成一定程度的功耗最优化。它拆分为三个阶段, 如下简化图所示。
此流程为完全自动化流程 无需用户控制可运行的阶段。在尝试使用 IDR 达成时序收敛前 设计中应不含任何方法论问题。运行 report_methodology 并修复或者豁免所有严重警告和警告。
以下提供了每个阶段的详细信息。
• 阶段 1 设计最优化 在设计最优化阶段 会生成并应用 QoR 建议。此阶段的编译时间通常高达标准实现运行的编译时间的 2.5 倍。原因如下
• 为了生成准确数据以供分析 必须在布局后和布线前运行实现工具。为了应用建议 设计运行必须复位 并且必须重新运行实现。
• 支持先达成 QoR 建议的影响效果 而后再开展新分析并生成新建议 这样即可避免过高估计设计问题的影响 ,从而最大化 QoR 的影响。
• 阶段 2 工具选项探索 此阶段使用 ML 策略来预测要使用的最佳工具选项。
• 阶段 3 最后一步时序收敛 此阶段利用布线后 phys_opt_design 、使用“ Last Mile ”指令进行增量实现以及利用增量 QoR 建议来达成时序收敛。要进入此阶段 设计的 RQA 得分必须不低于 3 并且 WNS -0.250 0.000之间。如果不满足这些条件, 则会跳过此阶段且退出流程。
满足以下任一条件时 流程就会退出
• 在任意阶段 如果满足时序并且设计已完全布线。
• 在阶段 1 如果
设计未能通过初始时序检查。
设计未能通过初始使用率检查。
方法论检查结果为失败 则激活工具退出选项 并且失败的方法论检查包含下列 ID TIMING-6/7/8/13
设计布线失败。
不存在预测的 ML 策略。
• 在阶段 2 如果不满足 Last Mile 条件。
• 在阶段 3 结束时 如果 Last Mile 算法已穷尽 且无法再进行进一步提升。
阶段 1 设计最优化
Design Optimization 设计最优化 阶段拆分为多个按顺序执行的步骤。下图显示了这些步骤。
在任意给定步骤中 可以运行多条实现命令 例如 opt_design place_design route_design ), 并且可生成 QoR 建议。对于每个步骤 都有一个目标建议列表 如果在目标建议列表上出现任何生成的建议 设计就会复位到所需的设计阶段, 以便成功应用该建议。如果目标建议列表上针对给定步骤没有任何建议 则会跳过此步骤。
设计最优化步骤的详细信息如下所述。
• 清理 XDC 检查设计中是否有任何原因会导致生成实现错误和无法修复的时序问题。如果发现错误 流程会退出。在此阶段不生成也不应用任何建议。
• 清理使用率 寻找可以降低使用率而不产生时序惩罚的建议。如果在流程早期可以检测到并修复任何其他与使用率无关的建议, 则可应用这些建议。
• 清理时钟设置 运行设计直至 place_design 以生成准确的时钟偏差时序数值。如果存在建议 那么该流程会复位。
• 清理拥塞 在此步骤中 运行有限的一部分布线器之后 会生成拥塞以便更准确地查看设计中的拥塞。如果存在建议, 则会加以应用。
• 清理时序 此阶段会基于源自先前阶段的检查点的时序失败的时序路径生成 QoR 建议 并重新运行布局器。在第 1 阶段设计最优化末 会判定是退出还是利用最佳运行继续阶段 2 工具选项探索。为检验 IDR 对设计所做的修改 QoR 建议报告会显示每个步骤包含的各项 GENERATED 建议和 APPLIED 建议。此外还会生成多个检查点, 这些检查点可从设计运行目录轻松访问。
阶段 2 工具选项探索
在“工具选项探索”阶段 目标是通过各种工具选项获得最大的 QoR 回报。为此 需使用 ML 策略预测的工具选项来执行 3 轮实现运行。如下图所示
QoR 建议将沿用阶段 1 中的最佳运行。如果阶段 1 中的后续步骤显示 QoR 劣化 则将丢弃其建议。通过运行 3 ML策略运行( 3 轮以上运行可用 ), 那么来自任一轮运行的 QoR 波动都会被平滑掉。ML 策略阶段使用标准实现运行 只要计算资源允许 即可并行运行。因此 并行使用时 此阶段的编译时间约为一轮实现运行。完成实现运行后, 最佳运行选择器会判定要继续使用的运行。流程行为如下
• 如果满足时序 则退出。
• 如果满足“ Last Mile Timing Closure 最后一步时序收敛 条件 则继续执行阶段 3
• 如果不满足“ Last Mile Timing Closure ”条件 则退出。
阶段 3 最后一步时序收敛
Last Mile Timing Closure 最后一步时序收敛 阶段会从前两个阶段中的任一阶段提取最佳实现运行结果 并尝试在此基础上达成时序收敛。此阶段的 QoR 增益相比于编译时间可能较小。设计必须以满足“ Last Mile TimingClosure”要求才能运行此阶段。
Last Mile ”指令会从现有已布线检查点继续执行 并尝试作用于失败的路径。在约 20% 的设计中会达成时序收敛 ,其中 WNS < -0.100 ns
Last Mile Timing Closure ”阶段的目标是在设计上达成时序收敛。这相比于默认工具流程稍有不同 默认工具流程的目的是尽可能达成最佳 WNS 和时序收敛的 WHS 。算法必须在尝试改善时序与不显著更改布局布线结果之间达成平衡。为此, 可使用“ Last Mile ”增量指令和 QoR 建议来收敛时序。在此过程中 将复用来自参考运行的含 APPLIED 属性的建议以及已设置 INCREMENTAL_FRIENDLY 属性的建议。完成布线后 可运行 phys_opt_design 来进一步尝
试收敛时序。为了从阶段 1 2 进入“ Last Mile Timing Closure ”阶段 设计必须满足以下条件
• 运行已完全完成布线
WNS > -0.250
RQA 得分不低于 3

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Sentinel的一些知识二

11231041 下一个是 熔断规则是异常数 和异常比例一样 只是换成了异常个数 1秒内的异常数有3个&#xff0c;就熔断2秒 下一步 进行压力测试 11231343 热点规则 没懂这个热点规则存在的意义 某个用户访问过于频繁&#xff0c;对其进行限制&#xff0c;给其他用户访问的机…

nexus制品库的介绍及详细部署使用

一、nexus 介绍 Nexus 是一个强大的仓库管理工具&#xff0c;用于管理和分发 Maven、npm、Docker 等软件包。它提供了一个集中的存储库&#xff0c;用于存储和管理软件包&#xff0c;并提供了版本控制、访问控制、构建和部署等功能。 Nexus 可以帮助开发团队提高软件包管理的效…

Ps:用好钢笔工具

使用钢笔工具时&#xff0c;应随时注意鼠标指针的形状。 ◆ ◆ ◆ 基本操作方法 1、绘制闭合路径 路径绘制结束时回到起点即可创建闭合路径。 2、绘制开放路径 想结束绘制时&#xff0c;按住 Ctrl 键点击画布空白处&#xff0c;或者&#xff0c;直接按 Esc 键&#xff0c;即可…

hadoop完全分布式搭建

文章目录 集群部署规划服务器准备Mobaxterm 远程登录实验前准备安装软件工具关闭防火墙 安装 JDK 和 Hadoop创建软件包目录解压软件包配置环境变量 集群搭建先创建 HDFS 工作目录和 LOG 目录配置集群配置环境配置 HDFS 主节点信息、持久化和数据文件的主目录配置 HDFS 默认的数…

万户ezOFFICE wpsservlet任意文件上传漏洞复现

0x01 产品简介 万户OA ezoffice是万户网络协同办公产品多年来一直将主要精力致力于中高端市场的一款OA协同办公软件产品&#xff0c;统一的基础管理平台&#xff0c;实现用户数据统一管理、权限统一分配、身份统一认证。统一规划门户网站群和协同办公平台&#xff0c;将外网信息…

深信服技术认证“SCSA-S”划重点:SQL注入漏洞

为帮助大家更加系统化地学习网络安全知识&#xff0c;以及更高效地通过深信服安全服务认证工程师考核&#xff0c;深信服特别推出“SCSA-S认证备考秘笈”共十期内容&#xff0c;“考试重点”内容框架&#xff0c;帮助大家快速get重点知识~ 划重点来啦 深信服安全服务认证工程师…

CANDENCE: PCB 中 元器件对齐

PCB 中 元器件对齐 以下面的几个电阻为例&#xff1a; step1&#xff1a;选择以下工具 step2&#xff1a;选中要对齐的器件&#xff0c;右键 Align Components 选择你想要的对齐方式即可

python进阶技巧

1.闭包 通过函数嵌套&#xff0c;可以让内部函数依赖外部变量&#xff0c;可以避免全局变量的污染问题 闭包注意事项&#xff1a; 总结&#xff1a; 2.装饰器 2.1装饰器的一般写法 2.2 装饰器的语法糖写法 def outer(func):def inner():print(睡了)func()print(起床)retur…

将项目放到gitee上

参考 将IDEA中的项目上传到Gitee仓库中_哔哩哔哩_bilibili 如果cmd运行ssh不行的话&#xff0c;要换成git bash 如果初始化后的命令用不了&#xff0c;直接用idea项放右键&#xff0c;用git工具操作

Java中的Lambda表达式

lambda表达式是一个可传递的代码块&#xff0c;可以在以后执行一次或多次。 1.lambda表达式的语法 eg&#xff1a;有如下lambda表达式&#xff1a; (int a, int b) -> {return ab}; 这个表达式的本质是一个函数。 一般的函数类似如下&#xff1a; int add(int a, int …

Android问题笔记四十八:蓝牙obtainMessage数据传输部分数据丢失乱序问题

Unity3D特效百例案例项目实战源码Android-Unity实战问题汇总游戏脚本-辅助自动化Android控件全解手册再战Android系列Scratch编程案例软考全系列Unity3D学习专栏蓝桥系列ChatGPT和AIGC &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分…

SQL Sever 复习笔记【一】

SQL Sever 基础知识 一、查询数据第1节 基本 SQL Server 语句SELECT第2节 SELECT语句示例2.1 SELECT - 检索表示例的某些列2.2 SELECT - 检索表的所有列2.3 SELECT - 对结果集进行筛选2.4 SELECT - 对结果集进行排序2.5 SELECT - 对结果集进行分组2.5 SELECT - 对结果集进行筛选…