01signal.com

Quartus、 timing closure: 获取简明的 multi-corner timing path 报告

介绍

当 FPGA design 未能达到其 timing constraints时,自然要做的就是仔细查看 critical paths。此检查是在 timing report 上进行的,它显示了由沿每个 path的各种 logic elements 引起的 delays 。

如果您不是 Intel的 FPGAs的重度用户,那么弄清楚如何获得这份报告可能并不是那么简单。更糟糕的是,您可能会在不知不觉中查看错误的报告。

首先要理清的是 multi-corner timing analysis的概念。通常的做法是通过确保在四种情况下实现 timing constraints 来验证 FPGA的 timing 的有效性: 最低和最高温度,结合“慢”和“快”的时序模型。因此,分析是针对四种组合进行的,或者如它们所指的,四种 corners。

因此,在检查 critical paths时,务必同时查看所有四个 corners 的 timing reports 。这个事实经常被忽视。例如,TimeQuest 通常只为单个 corner生成 timing report 。

所以这篇文章描述了如何获得有意义的报告。这些示例与 Quartus Prime 17.1 Lite有关。

我应该提到另外两个相关的帖子: 一篇文章探讨了 input / output constraints 和 timing report之间的关系,另一篇文章在 TimeQuest上对 Tcl scripting 进行了一些实验

重要提示:本页说明了如何获取 timing report 以满足 setup 要求。但是,也有生成 hold、 recovery 、 removal的 timing reports 。这些也可以揭示实现 timing constraints的失败。

创建 multi-corner report: 快速,使用 scripts

首先,将以下 Tcl script 复制到一个文件中,例如 timing.tcl:

create_timing_netlist
read_sdc
update_timing_netlist

foreach_in_collection op [get_available_operating_conditions] {
  set_operating_conditions $op

  report_timing -setup -npaths 20 -detail full_path -multi_corner \
    -panel_name "Critical paths"
}

请注意, timing report 仅限于 setup。

不要让“multi_corner”标志迷惑你: 每次调用 report_timing 都会覆盖一个 corner。目前尚不清楚该标志是否有任何作用。

这就是为什么 script 在所有四个选项上都有一个 loop (带有 foreach_in_collection),并为每个 corner生成一个单独的报告。

现在开始行动:

同一条目中还将有四个单独的报告,每个 corner一个。在早期版本的 Quartus上,只会出现这些(即没有 Multi-Corner Summary)。

仅生成 HTML/文本报告

这些工具可以生成整洁的 HTML reports,阅读起来比 TimeQuest自己的 GUI舒适得多。但不幸的是,这些报告只涵盖了一个 corner 。这个 script 生成四个单独的 HTML reports,每个 corner 一个(它有很多文件, JQuery script 文件, CSS 等等。花里胡哨,但不是 multi-corner report)。

将以下 script 视为 timing-html.tcl:

#project_open myproj
create_timing_netlist
read_sdc
update_timing_netlist

foreach_in_collection op [get_available_operating_conditions] {
  set_operating_conditions $op

  report_timing -setup -npaths 20 -detail full_path -multi_corner \
    -file "timing_paths_$op.html" \
    -panel_name "Critical paths for $op"
}

对于纯文本报告,更改 -file 标志的参数,因此后缀是 .rpt 或 .txt 而不是 .html。

请注意在 script顶部注释掉的“project_open”命令。如果未注释并且“myproj”被实际项目名称替换,则可以使用普通 shell command line 生成 HTML reports ,如下所示:

$ /path/to/quartus/bin/quartus_sta -t timing-html.tcl

然而,我还没有找到一种方法来生成这样的 multi-corner report 。

为了在每个 implementation 中生成这些报告(推荐),在 QSF 文件中添加如下行:

set_global_assignment -name TIMEQUEST_REPORT_SCRIPT relative/path/to/timing-html.tcl

当 Tcl script 包含在这样的 QSF 文件中时, script 不应使用 project_open。

仅使用 GUI

只需点击即可获得 multi-corner report :

此页面由英文自动翻译。 如果有不清楚的地方,请参考原始页面
Copyright © 2021-2024. All rights reserved. (6f913017)