TimeQuest快速入门
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
TimeQuest快速入门
简介
本教程介绍用TimeQuest Analyzer进行时序约束和静态时序分析的必要步骤。所用示例文件在\qdesigns\fir_filter文件夹下。
TimeQuest约束步骤
下面的步骤描述了用TimeQuest对设计进行时序约束的步骤,每一步操作包含GUI和Command-line的操作方法。
第1步:在QuartusII中打开&建立工程
启动QuartusII软件,在\qdesigns\fir_filter文件夹下打开工程compile_fir_filter.qpf。
第2步:设置TimeQuest Analyzer
默认状态下,QuartusII使用Classic Timing Analyzer作为默认的时序分析工具。需要在QuatusII中进行如下设置将TimeQuest Analyzer设为当前工程的时序分析器。
在【Assignment】菜单下单击【Settings】,在【Category】列表中展开【Timing Analysis Processing】,选择【Use TimeQuest Analyzer during compilation】,然后点击【OK】即可。
第3步:进行初始的编译
在将时序约束应用到设计之前,需要为TimeQuest创建初始的数据。初始数据是通过post-map结果产生的。步骤如下:
在【Processing】菜单栏下,选择【Start】/【Start Analysis&Synthesis】。
通过运行【Analysis&Synthesis】产生post-map数据。
还可以用post-fit网表来产生初始数据。但是创建post-map数据所用时间更少,而且post-map数据对本设计示例工程来说已经够用。
第4步:启动TimeQuest Analyzer
为了创建并验证时序约束,需要启动TimeQuest Analyzer。在【Tools】菜单下,单击【TimeQuest Analyzer】启动TimeQuest Analyzer。
第5步:创建Post-Map时序网表
在指定时序要求前,需要首先创建一个时序网表。可以从post-map或post-fit 数据中创建时序网表(见第3步)。利用post-map数据创建时序网表的方法为:在【netlist】菜单下,单击【Create Timing Netlist】,在弹出的对话框中,选择【Input netlist type】下的【Post-Map】,单击【OK】。
不能通过【Task】面板下的【Create Timing Netlist】命令来创建post-map网表。在默认情况下,【Create Timing Netlist】需要post-fit数据。
第6步:指定时序要求
在fir_filter设计中,需要定义两个时钟。表1中列出了两个时钟的属性。
在【Constraints】菜单下,单击【Create Clock】,弹出【Create Clock】对话框。按表1的要求进行设置。并在【Targets】单击右侧按键打开【Name Finder】对话框,单击【list】,在列表中选择[clk],单击【OK】即可。用同样的方法对[clkx2]进行设置。
默认情况下,时钟信号的占空比为50%。
第7步:更新时序网表
当创建时序约束后,必需更新时序网表,将所有的时序要求应用于时序网表中。
用如下步骤将clk和clkx2的时钟约束更新到时序网表中。
在【Task】面板中,双击【Updata Timing Netlist】,即可更新时序网表。
第8步:保存Synopsys Design Constraints(SDC)文件
在产生时序报告前,需要首先创建SDC文件。
在指定时序约束、更新时序网表后,应该创建一个SDC文件。所有的时序约束被保持的SDC文件中。
后续如果不小心改写了时序约束,可以通过最初的SDC文件来重新恢复最初的时序设置。
最初的SDC文件可以被当做“Golden”SDC文件,因为它里面包含了设计最原始的时序约束。创建SDC文件的步骤为:在【Tasks】面板中,双击【Write SDC File】,在弹出的【Write SDC File】对话框中输入文件名“Filterf.sdc”。
现在filterf.sdc文件中包含在第6步中设置的两个时钟的约束。
【Write SDC File】命令可以覆盖原来的SDC文件。因此,推荐保存一个“Golden”SDC文件,可用通过文本编辑器来编辑此文件。
第9步:产生时序报告
当更新时序网表后,可以为定义的两个时钟产生时序报告。
为了产生报告来验证所有的时钟被正确的定义且应用到合适的节点,在【Tasks】面板中双击【Report SDC】命令,弹出如图1所示的报告。
图1 Report SDC产生的报告
TimeQuest Analyzer仅产生[Create Clock]报告是因为这是设计中仅有的时序
约束。
当产生【Report SDC】报告后,还可以产生一个报告,里面包含了设计中所有时钟的信息,步骤为:在【Tasks】面板中,双击【Report Clocks】命令,弹出如图2所示报告。
图2 Report Clock产生的报告
当产生【Report Clocks】报告后,可以用【Report Clock Transfers】命令来产生报告来验证所有的时钟-时钟传输的有效性。此报告中包含了设计中所有的clock-to-clock的传输。步骤为:在【Tasks】面板中双击【Report Clock Transfer】命令。弹出如图3所示的报告。
图3 Clock Transfer报告
【Report Clock Transfers】报告说明源时钟clk和目的时钟clkx2之间存在数据传输。有9个实例是clk驱动源节点,clkx2驱动目的节点。
在fir_filter设计中,应该声明所有的clk-to-clkx2的时钟传输,即false paths。在【Clock Transfers】报告中,在【From Clock】栏中选中[clk]。右击,然后选择【Set False Paths Between Clock Domains】。此命令将切断两个时钟域之间的路径。
当执行完以上命令后,TimeQuest会提示Clock Transfer报告过时了。因为添加了新的时序约束,需要更新时序网表。在【Tasks】面板中,双击【Update Timing Netlist】即可更新时序网表。
当执行【Set False Path】命令后,所有产生的报告被打上“Out of Date”的标号,说明说有的报告都已经不能包含当前的时序约束。需要重新产生相应的报告。
当更新完时序网表后,可以用【Report SDC】命令来验证clock-to-clock之间被切断的传输。在【Tasks】面板中双击【Report SDC】命令后,弹出如图4所示的报告。
图4 Report SDC弹出的报告
图4的报告说明时钟约束和false paths被更正。
现在可以重新进行【Report Clock】和【Report Clock Transfers】来验证,两个时钟被移除的分析。图5为【Report Clock Transfers】命令产生的报告。