用Quartus II Timequest Timing Analyzer进行时序分析 :实例讲解 (六)

4      Timing report

上面三个部分分别介绍了时序分析中常用的约束的实用方法。在设定了这些约束以后,软件在综合的过程中,会根据约束对设计进行优化,采用一定的算法尽量保证设计能满足所有约束的要求。但是,很多情况下,系统是没有办法完全实现约束的要求,这时就会出现timing violation。在这种情况下,我们可以通过分析时序报告,找出问题的所在,从而给出解决方案。那我们如何获取时序报告呢?

时序报告的获取,必然是依赖于进行时序分析的软件。TimeQuest在做时序分析时,可以给出所有分析过的timing path的时序报告,不过一般情况下,我们只关心有问题的timing path或者一些关键的timing path的时序报告。在我们用time craft或者prime time做时序分析时,一般习惯于用命令行输入命令的方式控制软件输出时序报告。而在用TimeQuest做时序分析时,用GUI来获取时序报告会更方便一些。下面我们就介绍如何用TimeQuest获取时序报告。一般比较关注的是setup timehold time的相关信息,所以在介绍中,也以setup timehold timereport为主。

首先我们看TimeQuest左侧的task窗口,在Slack下面,有各种summary。如果我们要获取某一个项目的时序报告的summary,那么用鼠标双击这一条目就可以了。

用Quartus II Timequest Timing Analyzer进行时序分析 :实例讲解 (六)_第1张图片

 

比如说要看Setupsummary,那么双击Report Setup Summary,软件会在右边的主窗口给出Setup timesummary信息,如下图所示。

用Quartus II Timequest Timing Analyzer进行时序分析 :实例讲解 (六)_第2张图片

 

可以看到,PORT_DA_SCLK时钟域下,最大的setup timing violation-8.620ns。其他三个时钟域(CLK50MDA_SCLKCLK25M)下没有setup timing violation。但是在这个报告中,并没有给出PORT_DA_SCLK下有setup timing violationtiming path以及更详细的信息。

同样的,我们也可以给出Hold timesummary

       如果想要获取PORT_DA_SCLK下,所有存在setup timing violationtiming path的详细信息,那么就可以执行下面的操作。

       还是在软件左侧的Tasks窗口里,找到Custom Reports中的Report Timing…,如下图所示。

用Quartus II Timequest Timing Analyzer进行时序分析 :实例讲解 (六)_第3张图片

 

       双击Report Timing,会弹出如下的对话框:

用Quartus II Timequest Timing Analyzer进行时序分析 :实例讲解 (六)_第4张图片

 

      对话框中有ClocksTargetsAnalysis TypePathsOutputTcl Command这几个选项。我们分别对其做介绍。

       Clocks选项,用来选择要报告的timing path的时钟域。比如我们要获取PORT_DA_SCLK这个时钟域内timing path的报告,那么我们就在From ClockTo clock中,都选择PORT_DA_SCLK。如果要获取终点是PORT_DA_SCLKtiming path的报告,那么就在to clock中选择PORT_DA_SCLK

       Targets选项,用来选择要报告的timing path的具体信息。Fromtiming path的起点,Throughtiming path所经过的点,Totiming path的终点,确定这几个选项的话,可以给出特定timing path的时序报告。如果我们要给出Clocks选项中所有timing path的时序报告,那么targets选项里就可以空置。

       Analysis Type给出了要获取的报告的种类,做setup的话,就选择setup

       paths选项里,Report number of paths一项里,用来确定要报告的timing path的数量。首先要明确一点,假设你选择要报告的timing path的数量为n,那么软件在给出这个报告的时候,会将slack的值按从大到小的顺序排列,给出slack值最大的ntiming path的报告。如果要报告所有的timing path,那么这一项可以设定为空。之所以要给出这个选项,是因为在一些规模较大的设计中,timing path的数量可能会非常多,如果要给出全部的报告,软件需要运行的时间会非常的长。

       有的timing path,会有共同的起点和不同的终点,或者有不同的起点和相同的终点,那么Maximum number of paths per endpoint就是为了约束这种情况的。

       Output中给出了一些关于报告的内容的选项。这里不再做详细的介绍,一般情况下,按默认选项就可以了。

       Tcl Command是上面所有选项对应的Tcl Command,也就是说,你在SDC文件中加入这个Tcl Command的话,运行SDC文件,就会得到同样的结果。

       我们按照下面的选项执行Report Timing命令,如下图所示:

用Quartus II Timequest Timing Analyzer进行时序分析 :实例讲解 (六)_第5张图片

       会得到如下图所示的结果。

用Quartus II Timequest Timing Analyzer进行时序分析 :实例讲解 (六)_第6张图片

 

       说明一共有两条timing path,其中一条有-8.620slack。至于这一条timing path的详细信息,都可以从报告中获取。

       另外在TimeQuestTasks中有各种各样的命令,大家可以尝试着去执行一下看看结果,这里因篇幅的限制,就不做更多的介绍了。

       至此,Quartus II Timequest Timing Analyzer进行时序分析的实例讲解告一段落。

 

你可能感兴趣的:(FPGA)