TimeQuest使用步骤.docx

上传人:b****5 文档编号:11774200 上传时间:2023-04-01 格式:DOCX 页数:17 大小:1.04MB
下载 相关 举报
TimeQuest使用步骤.docx_第1页
第1页 / 共17页
TimeQuest使用步骤.docx_第2页
第2页 / 共17页
TimeQuest使用步骤.docx_第3页
第3页 / 共17页
TimeQuest使用步骤.docx_第4页
第4页 / 共17页
TimeQuest使用步骤.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

TimeQuest使用步骤.docx

《TimeQuest使用步骤.docx》由会员分享,可在线阅读,更多相关《TimeQuest使用步骤.docx(17页珍藏版)》请在冰豆网上搜索。

TimeQuest使用步骤.docx

TimeQuest使用步骤

Timequesttiminganalyzer使用方法

 

步骤1:

执行初始编译

在应用时序约束设计之前,创立一个初始数据库:

post-map。

 表1-1.执行初始编译 

(1)

QuartusII软件GUI

命令行

在Processing菜单上,指向Start,点击StartAnalysis&Synthesis。

quartus_mapfiltrefr

表1-1注释:

1.quartus_map用于创立一个post-map数据库。

2.Analysis&Synthesis阶段生成post-map数据库。

3.也可为初始数据库创立一个post-fit网表。

不过,创立一个post-map网表耗时较少。

图1    Analysis&Synthesis

步骤2:

运行TimeQuestTimingAnalyzer

通过表2-1中的程序,运行TimeQuestTimingAnalyzer来创立和验证所有时序约束和例外。

此命令将翻开TimeQuestshell。

表2-1.运行TimeQuestTimingAnalyzer

QuartusII软件GUI

命令行

在Tools菜单中,单击TimeQuestTimingAnalyzer。

quartus_sta–sr

project_openfir_filter-revisionfiltrefr

当您直接从QuartusII软件中运行TimeQuestTimingAnalyzer时,当前工程将会自动翻开。

如果使用GUI,那么当出现下面的消息时,请选择No:

"NoSDCfileswerefoundintheQuartusSettingsFileandfiltref.sdcdoesn'texist.WouldyouliketogenerateanSDCfilefromtheQuartusSettingsFile?

"

图2TimeQuestTimingAnalyzer

步骤3:

创立一个Post-map时序网表

在指定时序要求之前,请创立一个时序网表。

表3-1.创立一个Post-Map时序网表

TimeQuestTimingAnalyzerGUI

TimeQuestTimingAnalyzerConsole

1.在Netlist菜单上,点击CreateTimingNetlist。

出现CreateTimingNetlist对话框。

2.在Inputnetlist中,选择Post-Map。

create_timing_netlist–post_map

注意:

不要在Tasks面板中使用CreateTimingNetlist命令来创立一个post-map时序网表。

默认情况下,CreateTimingNetlist创立一个post-fit数据库。

图3CreateTimingNetlist

图4Inputnetlist

图5waiting

步骤4:

指定时序要求〔时钟、IO〕

表4-2.创立时钟并分配时钟端口

TimeQuestTimingAnalyzerGUI

TimeQuestTimingAnalyzerConsole

1.在Constraints菜单中,点击CreateClock。

出现CreateClock对话框。

对25MHz时钟指定参数。

单击RUN。

输入:

#createthe25MHz(20ns)clockcreate_clock–period20[get_portsCpsl_Clk25M_i]

2.在Constraints菜单中,点击DrivePLLclocks。

出现DrivePLLclocks对话框,前面指定了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中显示的程序后,时钟定义完成。

图7Createclock

图8设置参数

图9指定时钟

图10Createclock设置完毕

图11DrivePLLclocks

步骤5:

更新时序网表〔timingNetlist〕

在您创立时序约束或例外后,通过表5-1中的程序,对时序网表进展更新,将所有时序要求应用到时序网表〔新的clk和clkx2时钟约束〕。

只要应用了新的时序约束,就必须对时序网表进展更新。

表5-1.更新时序网表(TimingNetlist)

TimeQuestTimingAnalyzerGUI

TimeQuestTimingAnalyzerConsole

在Tasks面板中,双击UpdateTimingNetlist命令。

输入:

update_timing_netlist

图12UpdateTimingNetlist

步骤6:

保存到SDC文件

在为设计指定时钟约束并更新时序网表后,您可以通过表6-1中的程序来选择创立SDC文件。

通过TimeQuestTimingAnalyzerGUI或者在控制台(console)中指定的约束不会自动保存。

因此,Altera建议单独保存利用文本编辑器可以手动编辑的一个goldenSDC文件。

这使您能够根据自身的规输入注释并组织文件。

如下列图:

而不是从TimeQuestGUI的Constraints下拉菜单输入约束:

  

虽然看起来很相似,但这些约束将直接应用于计时数据库,而不会放入.sdc文件中。

  高级用户可能会找到理由这样做,用于修改配置确定参数。

建议初学者​​翻开.sdc文件并从Edit->InsertConstraint访问它们。

表6-1.保存SDC文件

TimeQuestTimingAnalyzerGUI

TimeQuestTimingAnalyzerConsole

1.在Tasks面板中,双击WriteSDCFile命令。

出现WriteSDCFile对话框。

2.在FileName栏输入名称。

输入:

write_sdc-name.sdc r

新的.sdc文件包含"步骤4:

指定时序要求"中定义的时钟约束。

WriteSDCFile命令可以覆盖任何现有的SDC文件。

当这种情况出现时,新的SDC文件没有保持顺序或注释。

〔建议拷贝粘贴至SDC文件中〕

 

步骤7:

对初始时时序网表生成时序报告

通过表7-1中的程序定义的时钟,在指定时序约束和更新时序网表后,生成时序报告,这验证了时钟被正确地定义并应用到正确的节点。

1.SDC报告

表7-1.ReportSDC命令

TimeQuestTimingAnalyzerGUI

TimeQuestTimingAnalyzerConsole

在Tasks面板中,双击ReportSDC命令。

输入:

report_sdc

图13生成SDC约束报告(SDCAssignmentsReport)

SDCAssignments报告了在指定设计中包含的所有时序约束和例外。

生成两个报告:

一个用于时钟和一个用于时钟组。

2.clock报告

表7-2.生成报告时钟报告(ReportClocks),总结设计中所有的时钟。

TimeQuestTimingAnalyzerGUI

TimeQuestTimingAnalyzerConsole

在Tasks面板中,双击ReportClocks命令。

输入:

report_clocks

图14时钟报告

3.ClockTransfers报告

通过表7-3中的程序,使用ReportClockTransfers命令生成一个报告来验证所有的时钟到时钟传输都是有效的。

这种报告包含设计中所有的时钟到时钟传输。

表7-3.生成报告时钟传输(ReportClockTransfers)

TimeQuestTimingAnalyzerGUI

TimeQuestTimingAnalyzerConsole

在Tasks面板中,双击ReportClockTransfers命令。

输入:

report_clock_transfers

图15时钟传输报告(ClockTransfersReport)

4. 伪路径设置〔两条路径不相关〕

本环节只是告诉这个局部伪路径可以作为例外不进展分析。

实际的时序要在做设计时保证其正确。

 ClockTransfers报告说明在clk〔源时钟〕和clkx2〔目的时钟〕之间存在跨时钟域路径。

共有16条路径,其中clk为源节点提供时钟,clkx2为目的节点提供时钟。

在fir_filter设计中,不必分析clk至clkx2的时钟传输,因为它们是忽略路径。

通过表7-4中的程序声明clk至clkx2的路径为伪路径。

当完成该程序后,TimeQuestTimingAnalyzer说明ClockTransfers报告是过时的。

表7-4.声明伪路径

TimeQuestTimingAnalyzerGUI

TimeQuestTimingAnalyzerConsole

1.在ClockTransfers报告中,在FromClock列选择clk。

2.右击并选择SetFalsePathsBetweenClockDomains。

这个命令说明将所有由clk驱动的源存放器到由clkx2驱动的目的存放器之间的路径设为伪路径。

set_false_path-from[get_clocksclk]\

-to[get_clocksclkx2] r

 

5.set_clock_groups设置〔两个时钟域不相关〕

另外,也可以使用set_clock_groups命令来声明两个时钟域之间的路径为伪路径。

例如,set_clock_groups-asynchronous-group[get_clocksclk]-group

[get_clocksclkx2]。

该命令说明clk到clkx2以及clkx2到clk的所有路径为伪路径。

此方法是优选的,可以不必每个路径设置。

6. 更新报表

由于您添加了一个新的时序约束,通过表2-14中的程序更新时序网表(timingnetlist)。

表2-14.更新TimingNetlist

TimeQuestTimingAnalyzerGUI

TimeQuestTimingAnalyzerConsole

在Tasks面板中,双击UpdateTimingNetlist命令。

输入:

update_timing_netlistr

在GUI中输入set_false_path后,所有生成的报告面板上都标有"OutofDate",这说明报告面板不包含反映TimeQuestTimingAnalyzer中当前状态的约束或者例外的结果。

要更新报告面板,必须重新生成所有的报告。

在命令行,重新输入命令。

在GUI中,右击报告面板列表中任何过时(out-of-date)的报告,并选择Regenerate或Regenerateall。

步骤8:

保存约束到SDC文件

在指定设计中所有的时钟约束和伪路径后,通过表8-1中的程序将时序约束和例外保存到SDC文件。

〔建议拷贝粘贴至SDC文件中〕

表8-1.保存约束到SDC文件

TimeQuestTimingAnalyzerGUI

TimeQuestTimingAnalyzerConsole

1.在Tasks面板中,双击WriteSDCFile。

出现WriteSDCFile对话框。

2.在Filename栏,输入-name.sdc.

输入:

write_sdc-name.sdc

1 这一过程覆盖之前所创立的filtref.sdc文件。

如果通过WriteSDCFile命令覆盖SDC,那么在新的SDC文件中移除了定制的格式和注释。

.sdc文件包含时钟约束和伪路径。

步骤9:

执行Timing-Driven全编译

保存约束到SDC文件后,在设计上运行一个全编译以优化布线,从而符合约束。

不过,在开场全编译之前,通过表9-1中的程序将SDC添加到工程中。

表9-1.添加SDC文件到工程中

TimeQuestTimingAnalyzerGUI

TimeQuestTimingAnalyzerConsole

1.在Project菜单中,点击Add/RemoveFilesInProject。

出现Add/RemoveFilesInProject对话框。

2.通过浏览来选择.sdc。

set_global_assignment-nameSDC_FILE\-name.sdc

将SDC添加到工程后,通过表9-2中的程序,在设计上运行一个全编译。

表9-2.运行一个全编译

TimeQuestTimingAnalyzerGUI

TimeQuestTimingAnalyzerConsole

在Processing菜单中,点击StartCompilation。

输入:

quartus_sh--flowcompile-name

完成编译后,TimeQuestTimingAnalyzer在CompilationReport中生成时钟建立和时钟保持的检查总结报告。

步骤10:

在TimeQuest中验证时序

要获得指定路径中详细的时序分析数据,请查看TimeQuestTimingAnalyzer中的时序分析结果。

 

完全执行布线布局功能(place-and-route)后,运行"步骤2:

运行TimeQuestTimingAnalyzer"中所介绍的TimeQuestTimingAnalyzer,生成一个post-fit时序网表,通过表10-1中的程序,读取SDC文件并更新时序网表来生成关于最新编译的报告。

 #1.Summary报告:

表10-1.生成关于LatestCompilation的报告

TimeQuestGUI

TimeQuestTimingAnalyzerConsole

在Tasks面板中,双击所需报告的命令。

例如:

ReportAllSummaries。

create_timing_netlist read_sdcfilref.sdc update_timing_netlistreport_clocks

create_timing_summary-setupcreate_timing_summary-holdcreate_timing_summary-recoverycreate_timing_summary-removalreport_min_pulse_width-nworst10

 当双击其中一个报告命令时,CreateTimingNetlist、ReadSDC和UpdateTimingNetlist命令依次在Tasks面板中执行,自动生成时序网表。

 #2.Clocksetup报告:

时钟建立检查确保每个存放器至存放器的传输不违反SDC指定的时序约束。

通过表10-2中的程序,生成一个时钟建立总结,对设计中的所有时钟进展检查,来验证没有出现违规。

表10-2.生成时钟设置总结检查(ClockSetupSummaryCheck)

TimeQuestTimingAnalyzerGUI

TimeQuestTimingAnalyzerConsole

在Tasks面板中,双击ReportSetupSummary。

输入:

create_timing_summary–setup

 Summary(Setup)报告

clkx2时钟没有出现在Summary(Setup)报告中,这是因为clk和clkx2之间所有的时钟路径已经声明是伪路径。

此外,fir_filter设计不包含任何存放器到存放器的路径,其中目的存放器路径由clkx2来驱动。

Summary(Setup)报告中的Slack列说明clk能满足约束,并有11.588ns的余量。

EndPointTNS列是指定时钟域中所有的总负裕量〔TNS〕的总和。

使用这个值来测量指定时钟域中失败路径的总数。

 #3.ClockHold报告:

生成Summary(Setup)报告后,通过表2-21中的程序,生成一个时钟保持检查总结。

表10-3.生成Summary(Hold)Report

TimeQuestTimingAnalyzerGUI

TimeQuestTimingAnalyzerConsole

在Tasks面板中,双击ReportHoldSummary。

输入:

create_timing_summary–hold r

图16Summary(Hold)报告

Summary(Hold)报告说明clk时钟节点符合时序约束,并有0.661ns的余量。

 #4.UnconstrainedPaths报告:

在执行全编译之前,通过表10-4中的程序指定所有的时序约束和例外。

这样可以确保Fitter优化设计中的关键路径。

您可以使用ReportUnconstrainedPaths命令来验证已经约束fir_filter设计中的所有路径。

表10-4.指定时序约束和例外

TimeQuestTimingAnalyzerGUI

TimeQuestTimingAnalyzerConsole

在Tasks面板中,双击ReportUnconstrainedPaths。

输入:

report_ucp r

图17UnconstrainedPaths总结报告

 #5.Set_input_delay/set_output_delay设置:

UnconstrainedPaths总结报告说明有大量的未约束路径,并详细介绍了这些路径的类型。

要充分约束此设计,利用由TimeQuestTimingAnalyzer所提供的整套SDC约束。

要充分约束fir_filter设计,约束所有的输入和输出端口。

使用SetInputDelay和SetOutputDelay对话框,或set_input_delay和set_output_delay约束来指定输入和输出延迟值。

由于附加约束应用于设计,通过文本编辑器〔例如:

inout_delay.sdc〕创立仅包含输入和输出约束的额外SDC。

添加表10-5所示的输入和输出延迟分配到"步骤8:

保存约束到SDC文件"创立的新SDC中。

表 10-5. 输入和输出延迟分配

TheTimeQuestTimingAnalyzerGUI

TheTimeQuestConsole

1.在Constraints菜单中,点击SetInputDelay。

出现SetInputDelay对话框。

2.输入以下容:

Clockname:

clk

Delayvalue:

2

Targets:

[get_ports{d[0]d[1]d[2]d[3]\

d[4]d[5]d[6]d[7]newtreset}]

3.在Constraints菜单中,点击SetOutputDelay。

出现SetOutputDelay对话框。

4.输入以下容:

Clockname:

clk

Delayvalue:

1.5

Targets:

[get_ports{yn_out[0]yn_out[1]\yn_out[2]yn_out[3]yn_out[4]yn_out[5]\yn_out[6]yn_out[7]yvalidfollow}]

set_input_delay-clockclk2\

[get_ports{d*newtreset}] r

set_output_delay-clockclk1.5\[get_ports{yn_out*yvalidfollow}] r

 记住读取新的约束后更新时序网表,并重新生成UnconstrainedPathsSummary报告。

 #6.ReportTiming报告:

通过表10-6中的程序,对设计的时钟或节点生成特定的时序检查报告。

表10-6中的程序生成一个报告,其中clk驱动目的存放器,并且目的存放器为 acc:

inst3|result,报告10条最差路径。

表 10-6. 生成ReportTiming报告

TimeQuestTimingAnalyzerGUI

TimeQuestTimingAnalyzerConsole

1.在Tasks面板中,双击ReportTiming。

出现ReportTiming对话框。

2.输入以下容:

ToClock:

clk

To:

acc:

inst3|result*

Reportnumberofpaths:

10

3.剩下其它的栏使用默认的设置。

report_timing-to_clockclk-to/acc:

inst3|result*-setup-npaths10

图2-10显示了ReportTiming报告。

使用Tasks面板中的ReportTopFailingPaths命令来生成一个报告,该报告详细介绍了设计中的最差的失败路径。

也可以通过菜单设置。

 

 

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

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1