mafan88的个人空间 https://blog.eetop.cn/162539 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

使用TimeQuest时序分析器

已有 257 次阅读| 2011-9-19 18:58 |个人分类:数字信号处理

(转) 使用TimeQuest时序分析器  


 

看了多篇 TimeQuest 的文章,概念总不是很清晰。读了下面的博文,突然眼前一亮,大有快感。特意收藏之。

 

1.  设置Quartus II使用TimeQuest

 

Quartus II默认的时序分析器是Classic TimingAnalyzer。要使用TimeQuest,通过选择菜单Assignments->Settings来打开一个工程设置窗口,然后 在窗口左边分类中选择Timing Analysis Settings。单击Use TimeQuest Timing Anlyer选项前的单选按钮lai告诉Quartus II软件使用TimeQuest进行时序分析,最后单击OK。

 
(转) 使用TimeQuest时序分析器 - donglianjie2005 - donglianjie2005的博客

图 使用TimeQuest作为时序分析器

 

2、使用TimeQuest

      当工程进行全编译后,可以在编译报告中查看这些时序分析结果。 选择菜单Tools->TimeQuest Timing Analyer来启动TimeQuest。TimeQuest启动后的界面如图所示。

(转) 使用TimeQuest时序分析器 - donglianjie2005 - donglianjie2005的博客


图6TimeQuest界面

2.1 TimeQuest图形用户界面

       TimeQuest窗口由几个部分组成,包括顶端的主菜单,左上的报告面板report pane,左侧的任务面板task pane,右边的查看面板view pane还有底部的控制面板console。主菜单用来和TimeQuest进行交互和输入命令。报告面板包含使用TimeQuest生成的所有时序报 告。任务面板含有用来执行获得时序报告的一系列命令动作。查看面板用来显示开打的报告窗口,TimeQuest刚打开时,查看面板里含有 TimeQuest用户界面的简要说明。底部的控制窗口可以给予我们通过指令来使用TimeQuest。

       我们重点关注两个面板:任务面板和报告面板,如图所示。任务面板提供了获得一个设计的时序信息的一系列命令动作,这些命令动作包括建立时序网表 creating a timing netlist,读取时序约束文件reading a timing constraints file,执行时序分析performing timing analysis,生成报告generating reports和保存时序约束文件saving a timing constraints file。报告面板包含了设计的详细时序信息,这些报告使用任务面板的命令动作来生成。

(转) 使用TimeQuest时序分析器 - donglianjie2005 - donglianjie2005的博客

图 TimeQuest任务和报告面板

为了展示如何使用时序分析器,在本例中,我们通过一系列基本的步骤来获得时序信息。首先,双击任务面板中的Create Timing Netlist 命令来生成时序网表,该网表用来进行时序分析。然后双击Read SDC File 来 告诉分析器读取一个Synopsys Design Contraints(SDC)文件并应用该约束文件来进行时序分析。设定约束可以让分析器知道设计电路中的哪些部分满足了时序要求哪些没有满足时序要求 从而可能运行不正确。如果没有进行约束则软件会自动默认进行1GHz的时钟信号约束。最后,双击Update Timing Netlist 命令来使用指定的约束来查看电路中哪些路径没有满足时序约束。一旦时序网表得到更新,就可以生成时序报告了。


 

2.2 时序分析报告

       双击报告面板中需要生成的报告名称来生成时序报告。例如,双击Setup Summary报告,将显示如图所示的查看面板内容。

(转) 使用TimeQuest时序分析器 - donglianjie2005 - donglianjie2005的博客

图 Setup Summary

Setup Summary报告显示了每个时钟域的时序摘要。Setup Summary报告中的参数有slack和total negative slack(TNS),两者结合在一起可以了解到我们的设计在每个时钟域满足了多少setup约束。在这个例子中,设计电路没有达到默认的1GHz频率约 束,因为电路中最长的路径延时比1GHz时钟周期还要大2.497ns(从slack这一列可以看出)。我们可以获取更详细的时序信息,右键所给时钟所在 行然后选择右键菜单中的选项Report Timing。如图所示。

(转) 使用TimeQuest时序分析器 - donglianjie2005 - donglianjie2005的博客


图 弹出菜单选择更查看更详细的时序报告

 

选 择Report Timing后打开的新窗口如图所示。在这个窗口中有若干区域用来指定需要生成报告的数据。第一个区域是Clock区域,在这个区域中,我们可以指定需要 报告的路径的类别。更精确的说就是指定发出数据的时钟信号到锁存数据的时钟信号。例如,在To clock和From clock选项中选择名称为clock的信号。这样做将让分析器仅报告寄存器到寄存器路径。

(转) 使用TimeQuest时序分析器 - donglianjie2005 - donglianjie2005的博客

图时序报告生成窗口

 

       第二个区域是目标区域targets field。目标区域更明确得指定设计电路中需要报告的特定路径。我们可以在From和To字段中选择我们感兴趣的路径的起始点和结束点。另外,我们也可 以查看经过特定节点的路径。在这个例子中,我们使From、To和Through这些地方留着空白不填,这样分析器就会报告所有的指定时钟路径。

       接下来的两个区域是Analysis type和Paths区域。Analysis type区域用来指定分析的时序类型,比如说建立时间(setup)、保持时间(hold)、恢复时间(recovery)和移除时间 (removal)。这些不同的时序分析类型都反映了设计电路中不同的时序特征。例如,建立时间分析可以看出在给定的时钟约束下,数据到达寄存器的时间是 否足够早以至于寄存器有足够的时间可以把数据正确的锁存在寄存器中。Paths区域可以指定最多报告的路径数量和包含在报告中的路径最大允许的 slack。在我们的例子中,选择分析类型为Setup并选择最多报告10条路径,时序分析器将生成一份建立时间分析报告和显示10条最大的负的 slack路径(违反时序约束的路径)。

       下一个设置区域output可以指定输出的格式和报告的详细程度。报告可以显示在查看窗口或者文件中。在本例子中,我们采用默认的选项,即Detail level选择Path only 并输出在查看窗口中。窗口默认名字Setup:clock,该名字标识了报告的类型,在报告面板中我们也可以看到以该名字命名的报告。

       最后一个区域是Tcl command区域。该区域显示了用来生成所需报告的可执行命令。我们通常不需要编辑这个区域。单击Report Timing按钮可以生成报告,报告内容如图所示。

(转) 使用TimeQuest时序分析器 - donglianjie2005 - donglianjie2005的博客

 

图所给定的寄存器到寄存器路径的详细建立时间信息

 

  时序报告由3个部分组成,顶部的路径列表和下方的两个图表。 路径列表部分包含了含有时序信息的路径列表。其中一列叫做slack显示了信号达到目的寄存器所需要的不同时间的差额,也就是系统时钟周期和信号实际达到 时间的余量。如果slack的值为负,说明该路径违反了我们的时序约束。在本例子中,期望的时钟周期是1ns,一些路径的延时超过了所要求数据到达时间 2.497ns。单击列表中的一条路径,在查看面板的另外两个部分中可以查看关于这条路径的更详细的时序分析信息。

 查看面板的两外两个部分由图表所组成。这些图表显示了路径摘要、统计数值、数据路径和波形图。左手边的部分默认显示波形图,波形图可以直观的解释时序违规是怎样发生的。右手边的部分显示了路径所经过的元件和该元件的延时。

  波形图是理解一个电路的时序分析的有力工具。它包括指定路径的数据延时和时钟到达源寄存器和目的寄存器的延时。初看一眼,时序分析波形图对熟悉的人来说非 常直观,但对一些陌生的人可能就不会这样。这是因为显示的时序信息与输入信号出现在FPGA设备的输入引脚的时间有关。例如,第一行显示的时钟信号出现在 设备的引脚上,稍后它传递到源寄存器的时钟输入引脚。在图12中我们展示了如何理解波形图的信息。

(转) 使用TimeQuest时序分析器 - donglianjie2005 - donglianjie2005的博客

图 理解指定寄存器到寄存器路径的建立时间信息

 

       图中前3个波形显示了时钟信号从源寄存器到达目的寄存器所要求的约束时间是1ns。发动时钟沿和锁存时钟沿在图中用粗线表示。接下来的两个波形显示了同一 时钟信号达到源寄存器和目的寄存器的时间,即发动时钟沿和锁存时钟沿的有效时刻。这两个波形显示了源寄存器发动数据和目的寄存器锁存数据的时间。

 Data Arrival和Data Delay两个波形显示了信号从源寄存器传播到目的寄存器的时间。注意到数据延时Data Delay是从寄存器的发动时钟时刻Launch Clock开始计算的。倒数第2个波形叫做Data Required,该波形指示了数据被正确锁存在目的寄存器中所要求的最大到达时间,这个时间已经把最后一行显示的寄存器建立时间(uTsu)计算在内 了。

 从该波形图中我们可以看到数据到达目的寄存器的时间滞后于时序约束的所需达到时间,因此,时序约束没有满足。一个负的倾斜值(slack)用来显示时序违规。相反,正的slack则表示满足时序约束。

 

3. 在设计中建立时序约束

TimeQuest可以通过Constraints菜单在你的设计的下一次编译中应用指定的时序约束。指定时钟约束,可以通过选择菜单   Constraint->Create Clock,将打开如图所示的窗口。

(转) 使用TimeQuest时序分析器 - donglianjie2005 - donglianjie2005的博客


图  TimeQuest建立时钟约束窗口

 

 在 这个窗口中,可以设定需要约束的时钟信号。首先,在Clock name输入框中为约束的时钟信号起个名字,在本例中和电路的时钟信号名字相同,都为clock。然后,在接下来的Period输入框中设定约束的时钟周 期为4ns。接下来的Waveform. edges区域中的Rising何Falling输入框用来定义时钟信号从0变到1和从1变到0的时刻。让这些区域留着空白可以定义时钟的上升沿时刻为 0,下降沿的时刻是时钟周期的一半。最后,在Targets区域中选择信号clock,表示以上的时序约束应用于电路中名称为clock的时钟信号。完成 后单击Run按钮来应用这些约束并双击Write SDC File命令保存约束文件到名为example.sdc的约束文件,如图所示。

(转) 使用TimeQuest时序分析器 - donglianjie2005 - donglianjie2005的博客

图   保存时序约束文件

 

       一旦保存了约束文件,就可以在Quartus II编译的过程中告诉软件使用该约束文件。如图所示,我们可以在TimeQuest timing analyzer settings窗口中添加需要使用的约束文件。添加了约束文件后,重新编译工程,然后按照之前的步骤打开setup summary报告,这时,我们会发现时序约束已经达到要求。

(转) 使用TimeQuest时序分析器 - donglianjie2005 - donglianjie2005的博客


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 6

    粉丝
  • 0

    好友
  • 15

    获赞
  • 6

    评论
  • 105786

    访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-23 15:33 , Processed in 0.012120 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部