TimeQuest快速入门实例及时序查看
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.在quartus中对设计进行时序分析
2.1TimeQuest 工具
Quartus® II TimeQuest Timing Analyzer是一个功能强大的ASIC型时序分析工具,能够以工业标准方法论来约束,分析和报告用户设计中所有逻辑的时序性能。这个工具是一个严格的静态工具,使用时不需要搭建硬件环境及进行调试。本节将介绍如何使用Quartus II TimeQuest Timing Analyzer工具的图形化功能来约束,分析及报告设计中的时序结果。
使用这个工具,我们要指定初始时序信息,包括时钟,时序例外以及信号传输中的到达和要求的时间。我们通过后缀名为sdc(Synopsys Design Constraints)的文件来指定时序要求,然后The Quartus II Fitter将优化逻辑布局等来满足我们的时序要求。
在时序分析过程中,Quartus II TimeQuest Timing Analyzer分析设计中的每一条时序路径,计算每条路径的延迟,检查是否存在时序违例,并且报告时序结果。一旦发现时序违例,可以精确定位到违例路径的时序细节,然后用户约束它以纠正违例。如果时序分析没有报告违例,那么恭喜你,在这个器件中的逻辑行为将与你的设计意图一致。
使用TimeQuest分析设计时序的一般步骤为:
图使用TimeQuest分析设计时序的一般步骤第一次编译时我们需要得到没有设置约束的时序结果,有助于我们给设计添加约束。第二次编译的时序需要把包含指定时序要求的文件(后缀为sdc 的文件)添加到工程文件中执行编译,这样工具就能够按照我们的时序要求来进行映射了。
2.2timequest快速入门示例
下面我们按照altera公司所给的timequest快速入门教程示例来讲解该时序分析工具的大致用法。使用的工具是目前使用最广泛的quartusII9.1版本
提供的TimeQuest工具。
首先我们打开quartus工具的例程。在quartus工具中选择File下的open project,选择qdesigns目录下的fir_filter工程。打开后我们能够看到如图示的模块结构图。
图qdesigns目录下的FIR例程
这个工程实现了一个FIR模块。其输入端口为clk,clkx2,reset,newt,d[7:0];输出端口为follow,yvalid,yn_out[7:0]。clkx2这个时钟是乘法器输出数据的寄存器触发时钟,而clk是整个模块其余部分的系统时钟。
对这个设计进行时序分析,首先需要在软件中设置timequest作为默认的时序分析工具。以下为设置方法:在Assignments 菜单中,点击Settings,Settings 对话框出现后,在Category列表下选择Timing Analysis 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 Quartus Settings File and filtref.sdc doesn't 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菜单下,我们能够看到当前版本软件的所有可以指定的约束。这里简要解释一下他们的功能。
第一部分是关于时钟的。Create clock是用来指定系统中存在的时钟的信息,包括时钟的频率,占空比等。可以指定多个时钟,或者给一个时钟指定多个频率分别进行时序分析。Create generated clock是指定由输入时钟信号在FPGA内部生成的时钟,通常需要指定生成这个时钟的时钟源及生成关系。Set clock latency和set clock uncertainty是指定时钟的输入延时以及时钟信号的不确定性,时钟间隙或者时钟转移的。Set clock group是将设计中互斥的时钟放在不同的group里面,互斥的时钟可能是不同时钟域的,也可能是同一个时钟信号进行分析时指定了2种频率各自分析。Remove clock是将之前指定的时钟从设计中移除。
第二部分是关于输入输出端口的。只有约束了输入输出的时序,才是一个完整严谨的约束。否则有些寄存器的时序无法进行分析。
第三部分是一些时序的例外。包括False Path(忽略路径),Multicycle path(多周期路径),最大最小路径延时等。
菜单的第四部分支持从QSF 文件格式的标准时序分析器约束转换为TimeQuest 分析器的SDC 文件格式,将约束写入SDC文件,或者从SDC文件中读
出时序信息。
图TimeQuest指定时序约束的界面
接下来我们对FIR的设计指定时序要求。首先是时钟。
FIR这个设计存在2个时钟,我们需要对时钟特性进行指定。例子里面这两个时钟的要求为:
Clk频率50 MHz,50/50占空比;clkx2为100 MHz,占空比是60/40。在如下图所示的creat clk对话框中,可以指定时钟名称,Period是周期,默认单位ns;波形不填默认占空比50%,上升沿在前,否则时钟按照你指定的边沿时刻跳变,;targets 用来将指定的时钟与设计的端口进行匹配,最下面是显示将要添加进入SDC文件
的命令行。按照图中的示例指定clk与clkx2分别为50MHz和100MHz。