1、3.7.2 时序分析基本步骤 (1)复制并打开工程。为了操作方便,先将QuartusⅡ安装目录中自带的fir_filter工程复制到新建的某个工程日录中,如本例复制到D:\fir_ttilter目录下。在QuartusⅡ软件中打开Fir_filter.qpf工程文件。 打开工程后,双击filterf.bdf,出现下面图。 (2)编译工程。选取QuartusⅡ菜单proeessing®Start Analysis&Synthesis或者点击快捷按钮对该工程进行分析和综合。 (3)启动TimeQuest Timing Analyzer工具。
2、在QuartusⅡ中选取菜单Tool->TimeQuest Timing Analyzer命令,因为TimeQuest Timing Analyzer需要SDC文件(Synopsys Design Constrain)。如果打开TimeQuest Timing Analyzer没有.sdc,则QuartusⅡ会出现询问窗口。若使用GUI,则选择 NO。打开的TimeQuest Timing Analyzer工具如图3.75所示。 (4)创建Timing Netlist。在TimeQuest Timing Analyzer软件中,选取菜单Netlist®Create Timing Netl
3、ist命令,出现Create Timing Netlist对话框,如图3.76所示。在Input netlist处选择Post-map选项,其他保持默认设置,按OK按钮。 在TimeQuest Timing Analyzer软件中,用鼠标左键双击左侧tasks子窗口中的CreateTiming Netlist,则开始创建时序分析网表,建立成功后左侧task子窗口中的Create Timing Netlist变成绿色,如图3.77所示(在点击图3.76所示对话框的OK按钮后同时会完成该操作) (5)确定时序需求(Timing Requ
4、irements)。此范例示范两个时钟的时序需求,如表3.4所示 (6)设定clk时序需求。在TimeQuest Timing Analyzer窗口,选取菜单选项Constraints®Create Clock命令,弹出Create Cloek对话框,如图3.78所示。 在Clock name处输入clk,在Period处输入20。 在waveform egdes处的Rising:与Falling:处不输入任何值,则为默认值工作周期为50/50(即占空比为50%)。 点击Targets栏右侧的按
5、钮,出现Name Finder对话框,如图3.79所示, 点击List按钮,会出现工程顶层模块的所有引脚名称; 在clk引脚名称上双击鼠标左键,将clk选择到右侧列表中,按OK按钮关闭Name Finder对话框,返回到Create Clock对话框; 再按Run按钮,可以看到TimeQuest Timing Analyzer窗口最下方Console子窗口中有加入时钟时序要求的脚本命令。 create_clock -name clk -period 20.000 [get_por
6、ts {clk}] (7)设定clkx2时序需求。在TimeQuest Timing Analyzer窗口,选取菜单选项Constraints® Create Clock命令,出现Create Clock对话框。 n 在Clock name处输入clkx2; n 在period处输入10; n 在waveform egdes处的Rising输入O; n 在Waveform egdes处的Falling输入6,则可以设定占空比为60%。 再点击Targets栏右侧的按钮,出现Name Finder对话框(如图3.79所示,设置同clk),点击List按钮,会出现工程顶层模块的
7、所有引脚名称,在clkx2引脚名称上双击鼠标左键,将clkx2信号选择到右侧列表中; 按OK按钮回到Create Clock对话框。clkx2设定完成画面如图3.50所示。 点击Run按钮,可以看到TimeQuest Timing Analyzer窗口最下方的console子窗口有加入时钟时序要求的脚本命令,同时可以看到在左侧task子窗口中的Read SDC File变成绿色。 task子窗口中的Reports 双击Tasks子窗口中的Report Clocks,会开始执行并在Report Clocks处呈勾选状态,在Report Clocks窗口
8、中会出现如图3.83所示的结果。 双击Tasks子窗口中的Report Clock Transfers,会开始执行并在Report Clock Transfers处呈勾选状态,在RePort窗口中将出现如图3.84所示的结果。 (10)设定False path。将clk到clkx2的路径设定为False path。在TimeQuest Timing Analyzer窗口,选择菜单Constraints -> Set False path命令,则弹出Set False path对话框,如图3.85所示。 点击From右侧的…按钮,出现
9、Name Finder窗口,如图3.86所示; Collection下拉列表默认设置为get_clocks,点击List按钮,工程中创建的时钟信号(如clk、clkx2)会出现在List下方的列表中; 在clk引脚名称上双击鼠标左键,会将clk选择到右侧列表中,按OK按钮则返回到Set False Path窗口; 同理,点击To右侧的…按钮,在弹出的Name Finder窗口中点击List按钮,在clkx2引脚名称上双击鼠标左键,会将clkx2选择到右侧列表中; 按OK按钮则返回到Set False Path窗口,结果如图3.85所示 按Run按钮执行。 将clk到cl
10、kx2的路径设定为False Path的脚本命令会在Console窗口中出现。 set_false_path -from [get_clocks {clk}] -to [get_clocks {clkx2}] (11)更新Timing Netlist。因为在前一个步骤中增加了一个新的设置项目,因此要更新Timing Netlist。 双击TimeQuest Timing Analyzer窗口左侧的update Timing Netlist,会看到开始执行并且Update Timing Netlist变成绿色。 (12)验证并保存。要确认前一步骤设定是否成功,可以使用Repo
11、rt SDC指令。 双击Tasks窗口中的Reports,在展开的目录中展开Diagnostie目录,如图3.87所示。 双击Report SDC命令,执行后在TimeQuest Timing Analyzer窗口右侧出现如图3.88所示的结果。 再双击Diagnostic目录中的Report Clock Transfers命令,执行后在TimeQuest TimingAnalyzer窗口右侧出现如图3.89所示的结果。 从RR Paths栏位下可以看到false path的文字出现,则表示已经设定成功。 在TimeQuest Timing Analyzer窗口的Ta
12、sks子窗口最下方,有一个write SDC File功能选项。 可以直接双击Tasks子窗口中的Write SDC File命令,或者选取菜单Constrain->WriteSDC File命令,打开Write SDC File窗口,如图3.90所示。 在SDC file name处输入时序约束文件名称,如firtref.sdc,点击OK按钮退出。 在TimeQuest Timing Analyzer窗口下方的Consofe子窗口中会显示出对应的脚本命令。 (13)查看TimeQuest时序约束文件。可以使用文本编辑工具打开.sdc文件(也可以在QuartusⅡ中打开),如本例打
13、开前面写入的firtref.sdc文件,其内容如表3.5所示。 超链接:filtref.sdc (14)将SDC文件添加到QuartusⅡ工程中。在TimeQuest Timing Analyzer中保存好SDC文件后,返回QuartusⅡ环境,选取菜单projeet®Add/Remove Files In project命令,弹出Settings对话框,并选中Category中的Files。 在Settings对话框右侧Files界面中,点击File name右侧的按钮并选择firtref.sde文件,点击Add按钮firtref.sde文件加入工程中,然后点击OK按钮返回Quar
14、tusⅡ环境。 (15)编译工程。在Quartus 11中选取菜单processing-〉Start Compilation,对项目进行编译,最后出现编译成功信息提示窗口,按OK按钮。 (16)Timing in the Timing Analyzer验证。在Quartus 11环境中选取菜单选项Tool->TimeQuest Timing Analyzer,打开TimeQuestTiming Analyzer窗口查看结果。 (17)创建Timing Netlist。在TimeQuest Timing Analyzer窗口中,选取菜单Netlist->Create Timin
15、g Netlists命令,出现Create Timing Netlists对话框,如图3.91所示。 在Input netlisr处选择post-fit,点击OK按钮返回。创建成功后会在TimeQuest Timing Analyzer窗口的task子窗口中看到Create Timing Netlists变成绿色。 (18)读入SDC文件。在TimeQuest Timing Analyzer窗口,选取菜单(Netlist错)Constraints->Read SDC File, 出现Open对话框 选filtref.
16、sdc文件,选定好后按Open按钮。 在TimeQuest Timing Analyzer左侧Tsks子窗口中会看到Read SDC File变成绿色。在TimeQuest Timing Analyzer窗口下方的信息窗口中可以看到相关信息。 双击Tasks子窗口中的Update Timing Netlist命令更新Timing Netlisrs,执行后Update Timing Netlist变为绿色。 (19)查看报告。在TimeQuest Timing Analyzer窗口双击Tasks子窗口中的Report,在展开的目录中展开Macros子目录,如图3.92所示。
17、 双击Report All Summaries命令,执行后在TimeQuest Timing Analyzer窗口右侧出现如图3.92或下图所示的结果。 双击其他Report命令,在TimeQuest Timing Analyzer窗口右侧将显示相应的结果,读者可以自行验证。 3.7.3 查看时序分析报告 运行完时序分析之后,可以在Quartusll的编译报告窗口(选择菜单processing®Compilation Report命令)的TimeQuest Timing Analyzer中查看时序分析结果。 也可以从时序分析报告部分通过右键菜单Locate® Locate i
18、n Assignment Editor、Locate in Chip planner等命令进行个别时序分配和查看延时路径信息。 下一面我们就介绍如何用TimeQuest获取时序报告。 一般比较关注的是建立时间(setup time)和保持时间(hold time)的相关信息。 例如,TimeQuest左侧的Tasks子窗口中,在Slack目录下面有各种报告的总结(summary),如图3.93或下图所示。 如果要获取某一个项目的时序报告的总结信息,用鼠标双击这一条目就一以了。比如说要查看Setup的summary,那么双击Report setup summary,TimeQuest软件会在右侧的主窗口给出setup time的summary信息,如图3.94或下图所示。 22






