注:本文转自赛灵思中文社区论坛,源文链接在此。本文原作者为XILINX工程师。

本篇博文中的分析是根据真实客户问题撰写的,该客户发现不同操作系统间 QoR 性能存在差异。虽然可以理解赛灵思无法保证不同操作系统间的可重复性,正如(赛灵思答复记录 61599)中所述,但此处案例中出现的差异量级值得进一步深入调查。

最初在 Windows 上的结果更好,但后续在 Linux 上结果更好。最后发现,此问题与设计中存在的某些超严重方法违例有关。

本篇博文中的分析是根据真实客户问题撰写的,该客户发现不同操作系统间 QoR 性能存在差异。虽然可以理解赛灵思无法保证不同操作系统间的可重复性,正如(赛灵思答复记录 61599)中所述,但此处案例中出现的差异量级值得进一步深入调查。

最初在 Windows 上的结果更好,但后续在 Linux 上结果更好。最后发现,此问题与设计中存在的某些超严重方法违例有关。

问题说明:

用户发现相同设计在 Linux 与 Windows 上存在显著的时序差异。

在每个操作系统上运行完全相同的设计生成结果如下:在 Linux 上 WNS = -0.439ns,在 Windows 上 WNS = +26ps。

该用户在不同机器上多次运行构建,但针对各操作系统得到的结果是相同的。

以下“设计时序汇总 (Design Timing Summary)”截屏中显示了来自 Linux 的时序违例。在 Windows 上运行时,时序未出现任何错误。

注:您可使用以下选项来检查自己的设计的“时序汇总 (Timing Summary)”:

  • 在 Vivado GUI 中,转至“报告 (Reports)”选项卡 ->“时序 (Timing)->“时序汇总报告 (Report Timing Summary)
  • 运行以下 Tcl 命令:

report_timing_summary -file <filepath>/timingreport.txt

Linux 运行结果:

Windows 运行结果:

根本原因分析:

首先要验证的是,在 2 个平台上运行时,所有设计源代码、约束集、综合和实现指令以及 Vivado 工具设置都完全相同。另请确保不同操作系统上应用的 Vivado 补丁不存在任何差异,并且在 Vivado_Init.tcl 文件中未设置任何工具参数。

进一步深挖设计可以发现,在布局布线后可以从 Tcl 控制台 (Tcl Console) 执行 write_xdc。这一即可验证两个平台上的构建应用的约束相同。

要检查与时钟/架构/CDC 等相关的警告/严重警告,请打开方法论报告。

要在 Vivado GUI 中打开方法论报告,请转至“报告 (Report)”选项卡 ->“方法论报告 (Report Methodology),或者在 Tcl 控制台 (Tcl console) 中,使用 report_methodology。

报告打开后,您可能会看到几条与设计相关的警告和严重警告。

浏览此报告时,我们发现了几项警告,这些警告与设计中的时钟关系相关的错误实践有关(这些警告的 ID 为 TIMING-6TIMING-7),如下图所示。

Timing-6 Critical Warning 显示 Vivado 找到了 2 个时钟,这 2 个时钟一起定时,但并没有公用的基准时钟。

默认情况下,将报告的 2 个时钟视为相关联并以同步方式对其进行定时,即使这 2 个时钟并非衍生自公共基准时钟且不含已知相位关系也是如此。DRC 警告报告称时序引擎无法保证这些时钟处于同步状态。

Timing-7 Critical Warning 显示 Vivado 找到了 2 个时钟,这 2 个时钟一起定时,但并没有公用的节点。此 DRC 报告称时序引擎无法保证这些时钟在硬件中同步,因为它无法确定 2 个时钟树之间的公共节点。

某些方法论严重警告可能暗示设计上存在 QoR 问题,即出现此类任意严重警告有时都可能导致不同运行的结果出现不一致。应作为超严重 (Super Critical) 警告来处理的方法论严重警告包括:

  • TIMING-6
  • TIMING-7
  • TIMING-8
  • TIMING-14
  • TIMING-35

无论任何设计都不应存在上述任一违例,用户应采取行动尽快解决这些违例,以免影响 QoR。

TIMING-6 TIMING-7 - 如何解决这些警告/严重警告:

解决办法取决于 2 个时钟域处于异步还是同步状态。对于异步时钟,时序例外(例如,set_max_delay -datapath_only、set_clock_groups 或 set_false_path)应覆盖 2 个域之间的路径。

分析设计后,发现 set_false_path 是对应此 DRC 的正确约束。

要查找这些时钟之间的路径,请运行以下命令:

report_timing -from [get_clocks <CLOCK_NAME1>] -to [get_clocks <CLOCK_NAME2>]

请参阅 (UG906) 以获取有关 TIMING-6、TIMING-7 以及来自 report_methodology 的所有其它严重警告的深层详细信息。

解决方案和结论:

当纠正 TIMING-6 和 TIMING-7 违例后,设计在 Windows 和 Linux 上生成了一致的结果。

虽然赛灵思不保证不同操作系统间的可重复性,但设计中存在上述任一超严重警告都可能导致 QoR 欠佳。在这个案例中,由于存在这些违例,导致在某一操作系统内生成的结果较另一个操作系统内生成的结果更差。

使用方法论报告第 2 部分:方法违例对于 QoR 的影响相关推荐

  1. 使用方法论报告第 5 部分:DDR4 IP 校准后硬件故障,指示存在时序问题,但时序报告中无任何违例

    本篇博文中的分析是根据真实客户问题撰写的,该客户发现硬件中存在 DDR4 校准后数据错误.此问题显示为与时序有关,但时序报告中并未显示任何违例.最初并未使用方法论报告 (Methodology rep ...

  2. JDBC的批量查询报告内存溢出解决方法

    JDBC的批量查询报告内存溢出解决方法 参考文章: (1)JDBC的批量查询报告内存溢出解决方法 (2)https://www.cnblogs.com/DreamDrive/p/5761227.htm ...

  3. 基于改进的k-shell方法识别复杂网络中有影响力的重要节点

    基于改进的k-shell方法识别复杂网络中有影响力的重要节点 K-Shell是一种有效的识别有影响的分散体的方法. 然而,K-Shell忽略了关于节点拓扑位置的信息. 本文提出了一种改进的算法基于K- ...

  4. 计算机开题报告中的研究方法,开题报告:经济学写论文用到的五种研究方法

    "工欲善其事,必先利其器."要写好经济学论文,选择恰当的研究方法是至关重要的.在经济学论文中,「研究方法」一节必须回答以下两个问题:一是资料是如何搜集到或者衍生出来的,二是资料是如 ...

  5. 基于微信小程序的相关管理系统设计与实现开题报告的思路及方法

    今天主要谈一下计算机科学相关专业同学的选题的思路及方法. 毕业设计选题选没选好就像各位走出校园踏进社会的一道坎,跨过这道坎是很关键的,而有些同学却犯了难,把本应该简单的问题复杂化了.为什么这样讲呢?之 ...

  6. 【情报热点】扒一扒FFIE做空报告中的调查方法和数据源……

    图源:凤凰网科技 日前,美国做空机构J Capital Research(简称JCAP)发布了一份关于FFIE公司的做空报告,该机构通过各类公开信息渠道及实地走访调研对公司财报数据以及技术能力进行了多 ...

  7. 网络舆情总结汇报报告如何撰写的方法技巧

    对于网络舆情管理员们来说也不例外,也需要写网络舆情工作总结. 但不是所有的工作总结都是同一个模板,不同的工作性质其总结的方式自然不同.那么到底网络舆情工作总结要怎么写呢? 网络舆情总结汇报报告的撰写方 ...

  8. mysql启动失败:mysql服务无法启动 服务没有报告任何错误 解决方法

    My SQL server8.0 安装后,启动失败,提示信息如下: 尝试以下步骤,最终解决问题: 1 查看host文件(C:WindowsSystem32driversetchosts),是否修改过本 ...

  9. java技术路线思维导图_开题报告中的研究方法及技术路线指的啥?

    研究方法,就是你研究这个论文所使用的方法,比如你引用了一个案例,那这就叫做个案法,比如说你调查了一个问卷,这就用了调查法,比如说你去实际勘察,然后询问了别人,这就叫做访谈法,比如说你很多数据都是计算出 ...

最新文章

  1. Xamarin.Forms探索--使用 Xamarin.Forms 来创建跨平台的用户界面
  2. Java核心技术卷1——笔记(1)
  3. 关于SQL Server 2017中使用json传参时解析遇到的多层解析问题
  4. python太难学了-为何编程那么难?新手该怎么学Python?
  5. nodejs-Stream(流)
  6. C# winform 上传文件到服务器
  7. 你离黑客的距离,就差这20个神器了
  8. vfp 8.0中image控件的属性:RotateFlip
  9. 常用的基本Windows数据类型
  10. 深度学习——Nesterov方法的学习笔记
  11. 小技巧 ----- 通过二进制串的位运算进行一维指数型枚举
  12. Google 包庇 Android 之父还给了 9000 万美元,女工程师们怒了!
  13. Cadence OrCAD Capture交叉参考报表生成方法图文教程
  14. GB50311-2007综合布线工程设计规范
  15. Symbian中的iScanCode和iCode
  16. [GIS热点] 网络篇-WebGIS、物联网、网格GIS、雾GIS、云计算
  17. 搭建商品详情页面工程、实现商品详情页面展示
  18. TokenInsight 对话首席——2019年底层公链机会展望
  19. Egyptian Miracle Technical Service Support
  20. 手机怎么设置腾达路由器后显示远端服务器,教你如何用手机快速设置腾达路由器...

热门文章

  1. 成语学习微信小程序源码
  2. c#获取项目路径的方法
  3. 通过response返回json数据到前端
  4. 关于f(tx,ty)=t^nf(x,y)的学习
  5. 网络营销实验报告SEO综合实践
  6. 计算机技术创新型,【现场】艺术与科技跨学科创新型创作人才培养成果展
  7. 气和血1:生命在于气血
  8. 1.4. CFS调度算法
  9. 从Angular 转向VUE,再做一次菜鸟
  10. Java实现七牛云文件或图片上传下载