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

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

3天内不再提示

FPGA设计:关于Report QoR Assessment 命令的使用

454398 来源:XILINX技术社区微信公众号 作者:XILINX技术社区微信 2020-09-29 13:49 次阅读

Report QoR Assessment (RQA) 用于详述您的设计 QoR 目标实现的可能性。如果此命令返回的结果与您的期望不符,那么本篇博文包含了有关您可采取的后续行动的附加信息。本篇博文不仅适合首次使用这些命令的新用户,对于有经验的用户应该同样很实用。

什么是 QoR 评估报告 ?

(Report QoR Assessment)

Report QoR Assessment (RQA) 详述了您为了实现自己的设计 QoR 目标而应采用的方法。它通过分析方法论和设计的特性,为您提供如下详细信息:

  • 按 1 到 5 评分,分值对应满足设计 QoR 目标的可能性
  • 您是否需要更正影响 QoR 的方法论问题
  • 您是否应使用 QoR 建议报告 (Report QoR Suggestions) 来增强设计
  • 流程指南,提供有关利用诸如 ML 策略或增量编译等工具功能的适当时机的建议

它是一条基于文本的命令,可于综合后在 Tcl 控制台 (Tcl console) 中或脚本里,在实现流程的任意阶段运行。

评估得分

评估得分用于预测设计满足其 QoR 目标的可能性高低。它可在实现的任意阶段生成,但鉴于其前瞻性的本质,它适合在设计完全完成布线之前使用,并且在执行 opt_design 后生成的评分值最高。

评估得分细分为 5 个等级:

下表详列了 41 项设计的得分准确性:

通过将 opt_design 得分与 route_design 得分进行比对,即可看到:

  • 59% 的设计预测准确
  • 98% 的设计预测偏差在 +/- 1 之间

这样的准确率使我们得以指导用户在实现流程中是应继续运行后续步骤,还是使用 Report QoR Suggestions 等工具来改进设计并提升满足时序的可能性,亦或是执行其它操作。

执行 place_design 后,评估得分准确率更高:

  • 76% 的设计预测准确
  • 98% 的设计预测偏差在 +/- 1 之间

如您所见,如需进一步提升准确率,可运行额外的 place_design 步骤,但应注意的是,在此阶段运行该命令的作用有限。

评估得分可用于判定您应致力于改进网表还是应运行实现工具。

下表概括了常见后续操作:

QoR 评估得分可使用 Report QoR Suggestions (RQS) 来加以改善,但这并不适用于所有设计。为了对得分 2(或低于 3)的设计进行改进,可能需要大量工作,例如,对 HLS 模块进行最优化、HDL 重新编码、变更 IP 配置等。

如果我们仅关注实现工具流程,那么根据 RQA 得分应用自动 QoR 建议对于大部分设计都有效。运行 Report QoR Suggestions 后,对 RQA 得分的影响如下图所示。

设计得分改善与否取决于建议的类型、建议的数量以及受影响的路径的数量。

虽然并非所有设计的改善效果都足以使得分提升,但都能改善其设计性能特性(如,WNS 或拥塞),因此毋庸置疑,它朝着正确的方向迈出了一步。基于时钟和拥塞的建议所实现的改进效果最为明显。

方法论报告

改进设计时,如果 QoR 不升反降,那么您势必将面临如下选择。是继续修复?还是重新寻找新的解决方案?

这里有一个好办法 - 解决方法论问题即可简化这一任务。

如需了解这一观点的更多详情,请请进入赛灵思中文论坛(阅解决方法论问题以简化时序收敛文。

与 RQA 合并的方法论报告 (Report Methodology) 是一个精简版本。RQA 报告仅详列了影响 QoR 和工具变化的不合规的方法论检查。要获取完整报告,请运行 report_methodology 命令。

将 QoR 评估报告与 QoR 建议搭配使用

QoR 评估得分是通过观察多项底层级设计指标并形成总体设计得分的方法来生成的。即使使用自动建议,如需提升设计得分,最好还是查看设计中的问题详情,了解如何通过每次迭代来改进结果。

详情 (Details) 表细分为多个类别,这些类别与 Report QoR Suggestions (RQS) 命令的类别相同。将设计问题综述集中于一处是非常有效的。此外,还有一个状态列用于显示需要复查的领域以及应满足的理想阈值。

下图显示了 QoR 评估详情表示例:

对于超出阈值的任何项,都会在其旁边添加 REVIEW 标记。阈值并非硬性限制,但可作为指导。这些阈值可帮助您洞悉设计中出现 QoR 下降的时机。如果只有某一个项略超阈值,那么您可以预判它对自己的设计影响有限。但如果有许多因子都略超阈值,或者如果某一个问题显著超出阈值,那么您几乎可以肯定设计中将出现问题。

QoR 评估详情表还可提供实用概览,以便您在使用 QoR 建议改进设计之后检验资源变更情况。鉴于该表极为详尽,因此非常便于与先前版本进行并排对比。

在 QoR 建议报告中,您将可以看到,各项建议根据对于所涉 RQA 得分的影响,按从高到低排列。通过将该表与建议进行比较,您即可看到各工具尝试从哪些方面来对设计进行改进。

流程指南

流程指南由 RQA 提供,其中详述了用户应采取的后续行动。它不仅十分便于新用户上手,对于经验丰富的 FPGA 设计师也十分实用。

通常,它适合用于识别:

  • 尚未被解决的方法论违例
  • ML 策略或增量编译,因为用户不熟悉这些流程而可能将其忽略
  • 识别何时应使用 report_qor_suggestions (RQS)

流程指南在“总体评估汇总 (Overall Assessment Summary)”表中提供。以下是报告示例:

流程指南将判定设计是否需要进一步执行方法论修复、是否需要应用关键的实现建议,或者是否已经准备好执行 ML 策略或增量编译实现流程。设计的 QoR 指标中并没有任何一项属于硬性要求或属于被禁止项,但如果不符合标准,则很有可能无法满足期望目标。

要使设计符合 ML 策略要求,必须满足以下条件:

  • 实现已完成且其运行经历了下列阶段:opt_design、place_design、phys_opt_design 和 route_design
  • 设计运行时所采用的所有Directive 均设置为“Default”或“Explore”。
  • 已完成关键设计修改。如果设计不符合 ML 策略要求并且上述条件已得到满足,那么您应该运行 RQS 来找出这些设计修改。
  • 受支持的系列为 UltraScale 和 UltraScale+

要使设计符合增量编译要求,设计应满足下列条件:

  • 在时序收敛的合理范围内。WNS > -0.500 ns
  • RQA 得分为 4 或 5
  • 包含一些适合增量编译的 RQS 建议

受支持的系列为 UltraScale 和UltraScale+

注释:有部分关键路径无法通过增量流程来解决,例如,DSP/BRAM 中的固定级联路径。

下一个建议的流程阶段会查看所有信息并判断最适合用户采取的行动方案。当设计符合增量和 ML 策略时,工具将为您提供最佳选择建议。

总结

在本篇博文中,我们向您展示了如何使用 Report QoR Assessment 来明确自己的设计满足时序的可能性以及哪些领域需要改进。

我们演示了“详情 (Details)”表提供的详尽且实用的设计概述,最后还演示了如何使用“流程指南 (Flow Guidance)”功能来充分利用 Vivado 的工具流程。

编辑:hfy


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

    关注

    1600

    文章

    21284

    浏览量

    592880
  • 命令
    +关注

    关注

    5

    文章

    638

    浏览量

    21845
  • ML
    ML
    +关注

    关注

    0

    文章

    136

    浏览量

    34291
收藏 人收藏

    评论

    相关推荐

    Kubectl核心命令总结:如何快速掌握K8s

    设置 kubectl 命令交互的 kubernetes 集群并修改配置信息。参阅 使用 kubeconfig 文件进行跨集群验证 获取关于配置文件的详细信息。
    的头像 发表于 02-23 14:43 162次阅读
    Kubectl核心<b class='flag-5'>命令</b>总结:如何快速掌握K8s

    Linux基本命令总结

    都说Linux命令多,实际工作中我们又有多少命令会接触用到呢?本文跟大家分享Linux运维工作中常用的600个命令,可以说这些命令是伴随着大家一生的运维生涯了,看看大家有哪些还没用过的
    的头像 发表于 01-11 10:32 567次阅读

    关于FPGA的开源项目介绍

    Hello,大家好,之前给大家分享了大约一百多个关于FPGA的开源项目,涉及PCIe、网络、RISC-V、视频编码等等,这次给大家带来的是不枯燥的娱乐项目,主要偏向老的游戏内核使用FPGA进行硬解,涉及的内核数不胜数,主要目标是
    的头像 发表于 01-10 10:54 500次阅读
    <b class='flag-5'>关于</b><b class='flag-5'>FPGA</b>的开源项目介绍

    python调用windows命令

    Python是一种强大的编程语言,可以用于开发各种不同类型的应用程序。其中一个常见的用途是使用Python调用Windows命令来执行特定的任务。在本文中,我们将详细讨论如何使用Python调用
    的头像 发表于 11-29 14:34 468次阅读

    关于FPGA的误区,你知道吗?

    总觉得FPGA特别高大上,自己的能力无可企及,那些会FPGA的都是大神一样的存在,要学习FPGA也必须用xxxx的板子才是正宗。
    发表于 11-24 10:17 232次阅读

    linux重启命令有哪些

    Linux是一种自由和开放源代码的操作系统,被广泛应用于服务器和嵌入式设备。在Linux中,有多种命令用于重启系统。在本文中,我们将详细介绍常用的Linux重启命令并解释每个命令的用途
    的头像 发表于 11-17 09:49 1126次阅读

    linux中创建group的命令

    用户。 如果你想要查看当前存在的组,可以使用命令 groupshow : groupshow groupName 此命令将显示关于特定组的信息,包括其名称,GID,以及隶属
    的头像 发表于 11-08 11:35 592次阅读

    linux free命令原理

    和分析系统内核的内存信息来显示内存使用情况。在Linux系统中,内核维护了一个内存统计信息表(或称为"proc"文件),其中包含了关于系统内存使用的详细信息。 free 命令通过读取这个表来获取并显示内存使用情况。 具体来说, free
    的头像 发表于 11-08 11:23 236次阅读

    shell命令和linux命令一样吗

    Shell命令和Linux命令并不完全一样。 首先,Shell是一种命令行解释器,它是用来解释和执行用户输入的命令的。Shell既是一种命令
    的头像 发表于 11-08 10:51 1309次阅读

    关于FPGA专用时钟管脚的应用

    本文主要用来随意记录一下最近在为手头的FPGA项目做约束文件时候遇到的一点关于FPGA专用时钟管脚相关的内容,意在梳理思路、保存学习结果、以供自己日后以及他人参考。
    发表于 08-07 09:20 1704次阅读
    <b class='flag-5'>关于</b><b class='flag-5'>FPGA</b>专用时钟管脚的应用

    Linux中sed命令用法

    这篇文章为初学者提供了关于 Linux 中 sed 命令的全面指南,涵盖了其历史、用途以及一些实用的技巧和窍门。通过掌握 sed,您可以高效处理文本处理任务,这对于任何使用 Linux 的人来说都是一项宝贵的技能。
    发表于 07-21 10:38 229次阅读
    Linux中sed<b class='flag-5'>命令</b>用法

    在Vivado中利用Report QoR Suggestions提升QoR

    Report QoR Suggestions (RQS) 可识别设计问题,并提供工具开关和可影响工具行为的设计单元属性的解决方案,即便在无法自动执行解决方案的情况下也可提供文本修改建议。
    的头像 发表于 07-19 10:38 724次阅读
    在Vivado中利用<b class='flag-5'>Report</b> <b class='flag-5'>QoR</b> Suggestions提升<b class='flag-5'>QoR</b>

    simulink命令有哪些 simulink命令集大全

      simulink的命令集  仿真命令  sim 仿真运行一个simulink模块  sldebug 调试一个simulink模块  simset 设置仿真参数  simget 获取仿真参数
    发表于 07-18 15:12 2次下载

    CAD使用技巧,15个命令走天下

    透明命令。大部分命令执行的过程是单一的,也就是说在执行的过程中只能执行完,或者中途取消。但也有些命令是在一个命令的执行过程中可以执行另外一个命令
    的头像 发表于 07-12 16:09 364次阅读

    浅析Linux精致的命令

    这只是一小部分常用的Linux命令,Linux有很多命令可以使用。建议通过man命令来查看命令的使用方法,例如:man cd
    的头像 发表于 04-24 16:28 1323次阅读