TimeQuest快速入门实例及时序查看_第1页
TimeQuest快速入门实例及时序查看_第2页
免费预览已结束,剩余1页可下载查看

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 5/5TimeQuest快速入门实例及时序查看 1.在quartus中对设计进行时序分析 2.1TimeQuest 工具 Quartus? II TimeQuest Timing Analyzer是一个功能强大的ASIC型时序分析工具,能够以工业标准方法论来约束,分析和报告用户设计中所有逻辑的时序性能。这个工具是一个严格的静态工具,使用时不需要搭建硬件环境及进行调试。本节将介绍如何使用Quartus II TimeQuest Timing Analyzer工具的图形化功能来约束,分析及报告设计中的时序结果。 使用这个工具,我们要指定初始时序信息,包括时钟,时序例外以及信号传输中的到达和要求的

2、时间。我们通过后缀名为sdc(Synopsys Design Constraints)的文件来指定时序要求,然后The Quartus II Fitter将优化逻辑布局等来满足我们的时序要求。 在时序分析过程中,Quartus II TimeQuest Timing Analyzer分析设计中的每一条时序路径,计算每条路径的延迟,检查是否存在时序违例,并且报告时序结果。一旦发现时序违例,可以精确定位到违例路径的时序细节,然后用户约束它以纠正违例。如果时序分析没有报告违例,那么恭喜你,在这个器件中的逻辑行为将与你的设计意图一致。 使用TimeQuest分析设计时序的一般步骤为: 图使用TimeQ

3、uest分析设计时序的一般步骤第一次编译时我们需要得到没有设置约束的时序结果,有助于我们给设计添加约束。第二次编译的时序需要把包含指定时序要求的文件(后缀为sdc 的文件)添加到工程文件中执行编译,这样工具就能够按照我们的时序要求来进行映射了。 2.2timequest快速入门示例 下面我们按照altera公司所给的timequest快速入门教程示例来讲解该时序分析工具的大致用法。使用的工具是目前使用最广泛的quartusII9.1版本 提供的TimeQuest工具。 首先我们打开quartus工具的例程。在quartus工具中选择File下的open project,选择qdesigns目录

4、下的fir_filter工程。打开后我们能够看到如图示的模块结构图。 图qdesigns目录下的FIR例程 这个工程实现了一个FIR模块。其输入端口为clk,clkx2,reset,newt,d7:0;输出端口为follow,yvalid,yn_out7:0。clkx2这个时钟是乘法器输出数据的寄存器触发时钟,而clk是整个模块其余部分的系统时钟。 对这个设计进行时序分析,首先需要在软件中设置timequest作为默认的时序分析工具。以下为设置方法:在Assignments 菜单中,点击Settings,Settings 对话框出现后,在Category列表下选择Timing Analysis

5、 Settings,开启Use TimeQuest Timing Analyzer during compilation,选择OK。 设置好后,执行Start Analysis & Synthesis,对项目进行编译。这一步建立了一个post-map的数据库,给给时序分析工具使用。当然也可以给post-fit数据库,但是对于时序预估,post-map已经足够了,而且运行的时间会更短。 在tools菜单下,选择TimeQuest Timing Analyzer,启动TimeQuest工具。此时自动打开的是当前的工程。当出现No SDC files were found in the Quartu

6、s Settings File and filtref.sdc doesnt exist. Would you like to generate an SDC file from the Quartus Settings File? 对话框时,选择NO。 图timequest界面 在Netlist菜单下点击Create Timing Netlist.在出现的对话框的Input netlist, 选择Post-Map. 点击OK。 完成这些步骤之后,我们就可以开始对设计指定时序上的要求了。在软件界面的constraints菜单下,我们能够看到当前版本软件的所有可以指定的约束。这里简要解释一下他们

7、的功能。 第一部分是关于时钟的。Create clock是用来指定系统中存在的时钟的信息,包括时钟的频率,占空比等。可以指定多个时钟,或者给一个时钟指定多个频率分别进行时序分析。Create generated clock是指定由输入时钟信号在FPGA内部生成的时钟,通常需要指定生成这个时钟的时钟源及生成关系。Set clock latency和set clock uncertainty是指定时钟的输入延时以及时钟信号的不确定性,时钟间隙或者时钟转移的。Set clock group是将设计中互斥的时钟放在不同的group里面,互斥的时钟可能是不同时钟域的,也可能是同一个时钟信号进行分析时指定

8、了2种频率各自分析。Remove clock是将之前指定的时钟从设计中移除。 第二部分是关于输入输出端口的。只有约束了输入输出的时序,才是一个完整严谨的约束。否则有些寄存器的时序无法进行分析。 第三部分是一些时序的例外。包括False Path(忽略路径),Multicycle path(多周期路径),最大最小路径延时等。 菜单的第四部分支持从QSF 文件格式的标准时序分析器约束转换为TimeQuest 分析器的SDC 文件格式,将约束写入SDC文件,或者从SDC文件中读 出时序信息。 图TimeQuest指定时序约束的界面 接下来我们对FIR的设计指定时序要求。首先是时钟。 FIR这个设计存

9、在2个时钟,我们需要对时钟特性进行指定。例子里面这两个时钟的要求为: Clk频率50 MHz,50/50占空比;clkx2为100 MHz,占空比是60/40。在如下图所示的creat clk对话框中,可以指定时钟名称,Period是周期,默认单位ns;波形不填默认占空比50%,上升沿在前,否则时钟按照你指定的边沿时刻跳变,;targets 用来将指定的时钟与设计的端口进行匹配,最下面是显示将要添加进入SDC文件 的命令行。按照图中的示例指定clk与clkx2分别为50MHz和100MHz。 图指定设计中的时钟 添加了时钟其实就可以在tasks框下的diagnosis里面快速查看时序报告了。依

10、次双击每一项,左上角report框中会出现相应的报告。黑色字体的为时序正确的报告项,红色字体表示该项存在问题。如下图所示,点击红色报告会出现问题的原因。从图中可以看到,问题是因为有10个没有约束的输入端口,涉及了79条输入端口路径,以及10个没有约束的输出端口,涉及10条输出端口路径。也就是说,时序工作认为一个完整的约束,每一个端口,每一条路径都需要指定时序要求,否则时序分析无法覆盖所有的触发器。 图快速报告时序结果及显示时序异常 在clock transfers报告下,可以看到时钟转移路径。FIR设计中不需要分析从clk 到clkx2的路径,因为他们是虚假路径。因此需要设置false pat

11、h。在clk到clkx2路径上右击鼠标,选择set false path。之后工具背景变成淡黄色,出现out of data 水印。整个分析结果需要update一次。 设置了时钟的约束,可以得到分析报告,还可以将指定的时序要求写入SDC 文件中。双击Task窗口下的Write SDC File,填写自定义的文件名称,就可以将之前设置的约束写入后缀名的.sdc的文件中。之后在TimeQuest的File目录下选择Open SDC文件,打开刚才自己命名的文件,就能够看到文本形式的时序约束信息,还包括使用的期间,创立工程的日期等。这个SDC文件将添加到工程中重新执行编译,以约束映射及布局布线。 图S

12、DC文件的内容 除了指定时钟信号,完整的时序约束还需要Set input和output delay,这样可以指定外部器件以及板级的时序。如果设定了这两项,TimeQuest将对整个系统执行静态时序分析。 设置输入输出的时序可以将信息写入新的SDC文件,也可以在之前的文件中继续添加时序信息。 在Constraints菜单下单击Set Input Delay,出现相应对话框。按照如下输入,其余默认: Clock name: clk Delay value: 2 Targets: get_ports d0 d1 d2 d3 d4 d5 d6 d7 newt reset 在Constraints菜单下

13、单击Set Input Delay,出现相应对话框。按照如下输入:Clock name: clk Delay value: 1.5 Targets: get_ports yn_out0 yn_out1 yn_out2 yn_out3 yn_out4 yn_out5 yn_out6 yn_out7 yvalid follow 这里的约束的意思是,将输入信号的到达触发器端口时间相对于时钟clk 的有效边沿的延时设置为2ns。将输出端口的数据要求时间与给定时钟的延时设 置为1.5ns。这样再生成Unconstrained Paths Summary report,就可以看到未约束的路径数为0。也就是

14、所有的路径都得到了约束。 2.3查看时序报告 添加了完整约束后将约束写入SDC文件。这种我们就可以查看每一条指定的路径具体的时序结果了,当然也可以看到最差的时序路径是哪一条。这里的报告非常多,甚至包括很多本书一时无法解释的报告项,读者需要自行尝试锻炼。 这里仅介绍customer report 下面的timing项的使用方法时序报告的理解。选择了customer report 下面的timing,会出现如下对话框: 图report customer timing对话框 在这个对话框中,用户可以自行指定需要报告的时序路径,包括时钟域的,也可以指定特定node,还可以选择分析的是建立时间,还是保持

15、,恢复以及移除时间;可以选择一次报告的时序路径数目等。点击report timing之后,工具会将 相应数量的时序路径按照时序余量由小到大排列出来。如果存在时序违例,特定的路径将被标红并且放到列表的最前。 在出现的报告之中,有3个主要的框。上面的一个框将所有路径结果以表格的形式列出。下面的2个一模一样的对话框显示的是表格中选中路径的时序结果,2个显示框是为了方便对照着查看该路径的时序。 图特定路径时序结果报告 这两个一样的对话框有4个子目录可以看到path summary,statistics,data path,以及waveform。Path summary给出了data arrival t

16、ime和data required time 的和,以及对于的时序裕度;statistics跟data path分别给出详细的数据要求的路径时间关系与数据实际路径各部分延时,从中可以看到数据传输中经过了些什么单元,各部分的延时是多少。最后的waveform则是以波形图的方式将数据建立或者保持关系与实际情况进行了分析。下面我们主要介绍如何认识这个波形图。 图时序报告中的波形图 图中的波形是FIR中指定的一条分析建立时间关系的数据路径示意图。Launch clock是第一级触发器触发的时钟,以其有效边沿作为这个图中时序分析的时刻起点,即0时刻。Latch clock是第二级触发器接收数据的时钟,与launch clock一样周期是20ns。所以建立时钟的关系是20ns。图中的data arrival time是从0时刻开始,数据到达第二级触发器的时间,数据触发时钟的延时2.277ns,又经过data delay 的延时(包括第一节所说的Tco和Tdelay)为8.383ns,所以数据在10.66ns时刻到达第二级寄存器。而第二级寄存器相应的时钟边沿时间是20ns+2.277ns的时钟延时,要求的数据在第二级寄存器有效沿之前uTsu到来,uTsu是-0.029,所以要求数据在20.248ns时刻之前到来。实际数据是10.66ns就到来了,计算出来的裕度是data requir

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论