TimeQuest使用步骤.doc

上传人:夺命阿水 文档编号:15762 上传时间:2022-06-30 格式:DOC 页数:8 大小:97KB
返回 下载 相关 举报
TimeQuest使用步骤.doc_第1页
第1页 / 共8页
TimeQuest使用步骤.doc_第2页
第2页 / 共8页
TimeQuest使用步骤.doc_第3页
第3页 / 共8页
TimeQuest使用步骤.doc_第4页
第4页 / 共8页
TimeQuest使用步骤.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《TimeQuest使用步骤.doc》由会员分享,可在线阅读,更多相关《TimeQuest使用步骤.doc(8页珍藏版)》请在课桌文档上搜索。

1、Timequest timing analyzer使用方法步骤1:执行初始编译在应用时序约束设计之前,创立一个初始数据库:post-map。表 1-1. 执行初始编译(1)Quartus II软件GUI命令行在Processing菜单上,指向Start,点击Start Analysis & Synthesis。quartus_map filtrefr表 1-1注释:1. quartus_map用于创立一个post-map数据库。2. Analysis & Synthesis阶段生成post-map数据库。3. 也可为初始数据库创立一个post-fit网表。不过,创立一个post-map网表耗时

2、较少。图 1Analysis & Synthesis步骤2:运行TimeQuest Timing Analyzer通过表 2-1中的程序,运行TimeQuest Timing Analyzer来创立和验证所有时序约束和例外。此命令将翻开TimeQuest shell。表 2-1. 运行TimeQuest Timing AnalyzerQuartus II软件GUI命令行在Tools菜单中,单击TimeQuest Timing Analyzer。quartus_sta srproject_open fir_filter -revision filtrefr当您直接从Quartus II软件中运行

3、TimeQuest Timing Analyzer时,当前工程将会自动翻开。如果使用GUI,则当出现下面的消息时,请选择No:No SDC files were found in the Quartus Settings File and filtref.sdc doesnt e*ist. Would you like to generate an SDC file from the Quartus Settings File?图 2TimeQuest Timing Analyzer步骤3:创立一个Post-map时序网表在指定时序要求之前,请创立一个时序网表。表 3-1. 创立一个Post-

4、Map时序网表TimeQuest Timing Analyzer GUITimeQuest Timing Analyzer Console1.在Netlist菜单上,点击Create Timing Netlist。 出现 Create Timing Netlist对话框。2.在Input netlist中,选择Post-Map。create_timing_netlist post_map注意:不要在Tasks面板中使用Create Timing Netlist命令来创立一个post-map时序网表。默认情况下,Create Timing Netlist创立一个post-fit数据库。图 3 C

5、reate Timing Netlist图 4 Input netlist图 5waiting步骤4:指定时序要求时钟、IO表 4-2. 创立时钟并分配时钟端口TimeQuest Timing Analyzer GUITimeQuest Timing Analyzer Console1.在Constraints菜单中,点击 Create Clock。出现Create Clock对话框。对25 MHz时钟指定参数。单击RUN。输入:#create the 25 MHz (20 ns) clock create_clock period 20 get_ports Cpsl_Clk25M_i2. 在

6、Constraints菜单中,点击Drive PLL clocks。出现Drive PLL clocks对话框,前面指定了PLL基时钟,什么都不选直接单击RUN即可。默认情况下,如果未使用-waveform选项,则create_clock命令假设50/50的占空比。时序包括以下方面:时钟:create_clocks / derive_pll_clocks / derive_clocks_uncertainly手动添加IO: set_input_delay / set_output_delay此处用延迟0参数,步骤10进展调整完成表 4-2中显示的程序后,时钟定义完成。图 7Create clo

7、ck图 8设置参数图 9指定时钟图 10 Create clock设置完毕图 11Drive PLL clocks步骤5:更新时序网表timing Netlist在您创立时序约束或例外后,通过表 5-1中的程序,对时序网表进展更新,将所有时序要求应用到时序网表新的clk和clk*2时钟约束。只要应用了新的时序约束,就必须对时序网表进展更新。表 5-1. 更新时序网表(Timing Netlist)TimeQuest Timing Analyzer GUITimeQuest Timing Analyzer Console在Tasks面板中,双击Update Timing Netlist命令。输入

8、:update_timing_netlist图 12Update Timing Netlist步骤6:保存到SDC文件在为设计指定时钟约束并更新时序网表后,您可以通过表 6-1中的程序来选择创立SDC文件。通过TimeQuest Timing Analyzer GUI或者在控制台(console)中指定的约束不会自动保存。因此,Altera建议单独保存利用文本编辑器可以手动编辑的一个golden SDC文件。这使您能够根据自身的规输入注释并组织文件。如下列图:而不是从TimeQuest GUI的Constraints下拉菜单输入约束:虽然看起来很相似,但这些约束将直接应用于计时数据库,而不会放

9、入.sdc文件中。高级用户可能会找到理由这样做,用于修改配置确定参数。建议初学者翻开.sdc文件并从Edit - Insert Constraint访问它们。表 6-1. 保存SDC文件TimeQuest Timing Analyzer GUITimeQuest Timing Analyzer Console1.在Tasks面板中,双击Write SDC File命令。出现Write SDC File对话框。2.在File Name栏输入名称。输入:write_sdc -name.sdcr新的.sdc文件包含步骤4:指定时序要求中定义的时钟约束。Write SDC File命令可以覆盖任何现有

10、的SDC文件。当这种情况出现时,新的SDC文件没有保持顺序或注释。建议拷贝粘贴至SDC文件中步骤7:对初始时时序网表生成时序报告通过表 7-1中的程序定义的时钟,在指定时序约束和更新时序网表后,生成时序报告,这验证了时钟被正确地定义并应用到正确的节点。1. SDC报告表 7-1. Report SDC命令TimeQuest Timing Analyzer GUITimeQuest Timing Analyzer Console在Tasks面板中,双击Report SDC命令。输入:report_sdc图 13生成SDC约束报告(SDC Assignments Report)SDC Assign

11、ments报告了在指定设计中包含的所有时序约束和例外。生成两个报告:一个用于时钟和一个用于时钟组。2. clock报告表 7-2. 生成报告时钟报告(Report Clocks ),总结设计中所有的时钟。TimeQuest Timing Analyzer GUITimeQuest Timing Analyzer Console在Tasks面板中,双击Report Clocks命令。输入:report_clocks图 14时钟报告3. ClockTransfers报告通过表 7-3中的程序,使用Report Clock Transfers命令生成一个报告来验证所有的时钟到时钟传输都是有效的。这种

12、报告包含设计中所有的时钟到时钟传输。表 7-3. 生成报告时钟传输(Report Clock Transfers)TimeQuest Timing Analyzer GUITimeQuest Timing Analyzer Console在Tasks面板中,双击Report Clock Transfers命令。输入:report_clock_transfers图 15时钟传输报告(Clock Transfers Report)4. 伪路径设置两条路径不相关本环节只是告诉这个局部伪路径可以作为例外不进展分析。实际的时序要在做设计时保证其正确。Clock Transfers报告说明在clk源时钟和

13、clk*2目的时钟之间存在跨时钟域路径。共有16条路径,其中clk为源节点提供时钟,clk*2为目的节点提供时钟。在fir_filter设计中,不必分析clk至clk*2的时钟传输,因为它们是忽略路径。通过表 7-4中的程序声明clk至clk*2的路径为伪路径。当完成该程序后,TimeQuest Timing Analyzer说明Clock Transfers报告是过时的。表 7-4. 声明伪路径TimeQuest Timing Analyzer GUITimeQuest Timing Analyzer Console1.在Clock Transfers报告中,在From Clock列选择cl

14、k。2.右击并选择Set False Paths Between Clock Domains。这个命令说明将所有由clk驱动的源存放器到由clk*2驱动的目的存放器之间的路径设为伪路径。set_false_path -from get_clocks clk -to get_clocks clk*2r5. set_clock_groups设置两个时钟域不相关另外,也可以使用set_clock_groups命令来声明两个时钟域之间的路径为伪路径。例如,set_clock_groups -asynchronous -group get_clocks clk -groupget_clocks clk*

15、2。该命令说明clk到clk*2以及clk*2到clk的所有路径为伪路径。此方法是优选的,可以不必每个路径设置。6. 更新报表由于您添加了一个新的时序约束,通过表 2-14中的程序更新时序网表(timing netlist)。表 2-14. 更新Timing NetlistTimeQuest Timing Analyzer GUITimeQuest Timing Analyzer Console在Tasks面板中,双击Update Timing Netlist命令。输入:update_timing_netlistr在GUI中输入set_false_path后,所有生成的报告面板上都标有Out

16、of Date,这说明报告面板不包含反映TimeQuest Timing Analyzer中当前状态的约束或者例外的结果。要更新报告面板,必须重新生成所有的报告。在命令行,重新输入命令。在GUI中,右击报告面板列表中任何过时(out-of-date) 的报告,并选择Regenerate或Regenerate all。步骤8:保存约束到SDC文件在指定设计中所有的时钟约束和伪路径后,通过表 8-1中的程序将时序约束和例外保存到SDC文件。建议拷贝粘贴至SDC文件中表 8-1. 保存约束到SDC文件TimeQuest Timing Analyzer GUITimeQuest Timing Anal

17、yzer Console1.在Tasks面板中,双击Write SDC File。出现Write SDC File对话框。2.在File name栏,输入-name.sdc.输入:write_sdc -name.sdc1这一过程覆盖之前所创立的filtref.sdc文件。如果通过Write SDC File命令覆盖SDC,则在新的SDC文件中移除了定制的格式和注释。.sdc 文件包含时钟约束和伪路径。步骤9:执行Timing-Driven全编译保存约束到SDC文件后,在设计上运行一个全编译以优化布线,从而符合约束。不过,在开场全编译之前,通过表 9-1中的程序将SDC添加到工程中。表 9-1.

18、 添加SDC文件到工程中TimeQuest Timing Analyzer GUITimeQuest Timing Analyzer Console1.在Project菜单中,点击Add/Remove Files In Project。出现Add/Remove Files In Project对话框。2.通过浏览来选择.sdc。set_global_assignment -name SDC_FILE -name.sdc将SDC添加到工程后,通过表 9-2中的程序,在设计上运行一个全编译。表 9-2. 运行一个全编译TimeQuest Timing Analyzer GUITimeQuest T

19、iming Analyzer Console在Processing菜单中,点击Start Compilation。输入:quartus_sh -flow compile -name完成编译后,TimeQuest Timing Analyzer在Compilation Report中生成时钟建立和时钟保持的检查总结报告。步骤10:在TimeQuest中验证时序要获得指定路径中详细的时序分析数据,请查看TimeQuest Timing Analyzer中的时序分析结果。完全执行布线布局功能(place-and-route)后,运行步骤2:运行TimeQuest Timing Analyzer中所介

20、绍的TimeQuest Timing Analyzer,生成一个post-fit时序网表,通过表 10-1中的程序,读取SDC文件并更新时序网表来生成关于最新编译的报告。#1. Summary报告:表 10-1. 生成关于Latest Compilation的报告TimeQuest GUITimeQuest Timing Analyzer Console在Tasks面板中,双击所需报告的命令。例如:Report All Summaries。create_timing_netlistread_sdc filref.sdcupdate_timing_netlistreport_clockscrea

21、te_timing_summary -setup create_timing_summary -hold create_timing_summary -recovery create_timing_summary -removal report_min_pulse_width -nworst 10当双击其中一个报告命令时,Create Timing Netlist、Read SDC和Update Timing Netlist命令依次在Tasks面板中执行,自动生成时序网表。#2. Clocksetup报告:时钟建立检查确保每个存放器至存放器的传输不违反SDC指定的时序约束。通过表 10-2中的

22、程序,生成一个时钟建立总结,对设计中的所有时钟进展检查,来验证没有出现违规。表 10-2. 生成时钟设置总结检查(Clock Setup Summary Check)TimeQuest Timing Analyzer GUITimeQuest Timing Analyzer Console在Tasks面板中,双击 Report Setup Summary。输入:create_timing_summary setupSummary (Setup)报告clk*2时钟没有出现在Summary (Setup)报告中,这是因为clk和clk*2之间所有的时钟路径已经声明是伪路径。此外,fir_filte

23、r设计不包含任何存放器到存放器的路径,其中目的存放器路径由clk*2来驱动。Summary (Setup)报告中的Slack列说明clk能满足约束,并有11.588 ns的余量。End Point TNS列是指定时钟域中所有的总负裕量TNS的总和。使用这个值来测量指定时钟域中失败路径的总数。#3. ClockHold报告:生成Summary (Setup)报告后,通过表 2-21中的程序,生成一个时钟保持检查总结。表 10-3. 生成Summary (Hold) ReportTimeQuest Timing Analyzer GUITimeQuest Timing Analyzer Conso

24、le在Tasks面板中,双击Report Hold Summary。输入:create_timing_summary holdr图 16Summary (Hold)报告Summary (Hold)报告说明clk时钟节点符合时序约束,并有0.661 ns的余量。#4. Unconstrained Paths报告: 在执行全编译之前,通过表 10-4中的程序指定所有的时序约束和例外。这样可以确保 Fitter优化设计中的关键路径。您可以使用Report Unconstrained Paths命令来验证已经约束fir_filter设计中的所有路径。表 10-4. 指定时序约束和例外TimeQuest

25、 Timing Analyzer GUITimeQuest Timing Analyzer Console在Tasks面板中,双击Report Unconstrained Paths。输入:report_ucpr图 17Unconstrained Paths总结报告#5. Set_input_delay / set_output_delay设置: Unconstrained Paths总结报告说明有大量的未约束路径,并详细介绍了这些路径的类型。要充分约束此设计,利用由TimeQuest Timing Analyzer所提供的整套SDC约束。要充分约束fir_filter设计,约束所有的输入和输

26、出端口。使用Set Input Delay和Set Output Delay对话框,或set_input_delay和set_output_delay约束来指定输入和输出延迟值。由于附加约束应用于设计,通过文本编辑器例如:inout_delay.sdc创立仅包含输入和输出约束的额外SDC。添加表 10-5所示的输入和输出延迟分配到步骤8:保存约束到SDC文件创立的新SDC中。表10-5.输入和输出延迟分配The TimeQuest Timing Analyzer GUIThe TimeQuest Console1.在Constraints菜单中,点击Set Input Delay。出现Set

27、Input Delay对话框。2.输入以下容:Clock name: clkDelay value: 2Targets: get_ports d0 d1 d2 d3 d4 d5 d6 d7 newt reset3.在Constraints菜单中,点击Set Output Delay。出现Set Output Delay对话框。4.输入以下容:Clock name: clkDelay value: 1.5Targets: get_ports yn_out0 yn_out1 yn_out2 yn_out3 yn_out4 yn_out5 yn_out6 yn_out7 yvalid follows

28、et_input_delay -clock clk 2 get_ports d* newt resetrset_output_delay -clock clk 1.5 get_ports yn_out* yvalid followr记住读取新的约束后更新时序网表,并重新生成Unconstrained Paths Summary 报告。#6. Report Timing报告: 通过表 10-6中的程序,对设计的时钟或节点生成特定的时序检查报告。表 10-6中的程序生成一个报告,其中clk驱动目的存放器,并且目的存放器为acc:inst3|result,报告10条最差路径。表10-6.生成Repo

29、rt Timing报告TimeQuest Timing Analyzer GUITimeQuest Timing Analyzer Console1.在Tasks面板中,双击Report Timing。出现Report Timing 对话框。2.输入以下容:To Clock: clkTo: acc:inst3|result*Report number of paths: 103.剩下其它的栏使用默认的设置。report_timing -to_clock clk -to / acc:inst3|result* -setup -npaths 10图 2-10显示了Report Timing报告。使用Tasks面板中的Report Top Failing Paths命令来生成一个报告,该报告详细介绍了设计中的最差的失败路径。也可以通过菜单设置。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号