智能设计运行
智能设计运行
(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