《TimeQuest使用教程(中文版).ppt》由会员分享,可在线阅读,更多相关《TimeQuest使用教程(中文版).ppt(62页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 2008 Cytech Technology Ltd., Co2TimeQuest使用教程使用教程n简介n使用步骤n时序分析中的要点n设计实例n常见时序优化方法 2008 Cytech Technology Ltd., CoTimeQuest使用教程使用教程简介 2008 Cytech Technology Ltd., Co4 TimeQuest时序分析器简介时序分析器简介n随着FPGA密度和速率的提高,传统FPGA时序分析工具很难满足复杂程度不同的设计需求。新的TimeQuest时序分析器可以达到基本和高级时序分析要求,提供完整的 GUI 环境,建立约束和时序报告,并提供 ASIC 功能特
2、性,自然地支持业界标准的Synopsys设计约束(SDC)格式,以及全脚本功能。n与标准时序分析器(TAN)相比,TimeQuest (STA)都有明显的优势:-基本时序分析要求-TimeQuest 提供使用方便的GUI,建立约束,查看时序报告。使TimeQuest可以提供和TAN相同的流程,不必再学习SDC或其他的约束格式。-中间时序分析要求-TimeQuest 能够自然地支持SDC格式。TimeQuest简化了SDC学习过程,提供按需的交互式报告功能。 -高级时序要求-TimeQuest 提供全脚本功能,建立约束,生成报告,管理时序分析流程。TimeQuest支持高级报告,并且能够建立定制
3、报告。 2008 Cytech Technology Ltd., Co5TimeQuest软件及器件支持软件及器件支持nQuartusII从6.0版本开始支持TimeQuest时序分析器nTimeQuest支持MAXII、Cyclone系列、Stratix系列和HardCopyII器件-在QII中选择以上器件时,可以选择使用TAN或STA分析-Arria IIGX、Stratix IV(GX/E)器件仅支持STA分析-Altera建议在90nm、65nm和40nm工艺节点上所有新设计都使用TimeQuest-SDC是约束高速源同步接口(例如DDR和DDR2)和时钟复用设计结构的理想格式,对信号
4、间复杂时序关系可以进行更高效的理解和精细的控制 Settings-Timing Analysis Settings下选择TAN或STA分析 2008 Cytech Technology Ltd., Co6进入进入TimeQuestnTools-TimeQuest Timing Analyzer,或点击按钮 2008 Cytech Technology Ltd., Co7TimeQuest界面界面报告窗任务窗控制窗查看窗工具栏 2008 Cytech Technology Ltd., Co8任务窗任务窗n提供对常用操作的快速访问-命令执行-生成报告n按照默认设置执行大部分命令双击可执行任意命令双
5、击可执行任意命令 2008 Cytech Technology Ltd., Co9报告窗报告窗n显示目前可以看到的报告列表-报告由任务窗产生-使用报告命令生成报告,如在控制窗以tcl命令的方式输入点击对应的报告,在察点击对应的报告,在察看窗中了解详细信息看窗中了解详细信息 2008 Cytech Technology Ltd., Co10查看窗查看窗n主观察区显示报告表内容和图形结果时序报告栏时序报告栏时序柱状图时序柱状图路径路径Slack报告报告 2008 Cytech Technology Ltd., Co11控制窗控制窗n直接输入并执行SDC & Tcl命令-显示GUI执行的等价命令n显
6、示TimeQuest输出消息n历史标签记录所有已经执行的SDC & Tcl命令 2008 Cytech Technology Ltd., Co12SDC File Editor = Quartus II Text Editorn在QuartusII或者TimeQuest中都可以利用SDC编辑器创建或者编辑SDCnSDC编辑器特性-使用GUI对话框进行SDC约束输入-语法着色-工具提示语法帮助TimeQuest File菜单菜单 New/Open SDC FileQuartus II File菜单菜单 New Other Files tab将光标放到命令上可以看将光标放到命令上可以看到工具提示到
7、工具提示GUI对话框进行对话框进行SDC输入输入 Edit - Insert Constraint 2008 Cytech Technology Ltd., Co13TimeQuest网表基本单元网表基本单元nTimeQuest需要读入布局布线后的网表才能进行时序分析,读入的网表是由一系列的基本单元构成的,包括cell, port, pin等nTimeQuest分析器支持收集(Collections)API接口,可以直接访问设计中的网表基本单元。通过使用收集命令来指定有效的时序约束。 2008 Cytech Technology Ltd., Co14TimeQuest网表基本单元网表基本单元n
8、Cells: Altera器件中的基本结构单元,LE可以看作是CellnPins: Cell的I/O端口,可以认为是LE的I/O端口-这里的Pins不包括器件的I/O引脚nNets: 同一个Cell中,从输入Pin到输出Pin经过的逻辑-网表中连接两个相邻Cell的连线不被看作Net,被看作同一个点,等价于Cell的Pin-连接两个相邻Cell的连线还是具有其物理意义的,等价于Altera器件中的一段布线逻辑,会引入一定的延迟nPorts: 顶层逻辑的I/O端口,对应已经分配的器件引脚nClocks: 约束文件中指定的时钟类型的Pin,不仅指时钟输入引脚nKeepers: 泛指Port和寄存器
9、类型的CellnNodes: 范围更大的一个概念,可能是上述几种类型的组合,还可能是不能穷尽的上述几种类型 2008 Cytech Technology Ltd., CoTimeQuest使用教程使用教程使用步骤 2008 Cytech Technology Ltd., Co16使用使用TimeQuest的步骤的步骤n生成时序网表n读取SDC文件 (可选)n约束设计 (可选)n更新时序网表n生成时序报告n保存时序约束 (可选)n是否使用全部6个步骤取决于你所处的设计流程以及你打算如何使用工具n第2步与第3步二者必须选择一个 2008 Cytech Technology Ltd., Co171)
10、 生成时序网表生成时序网表 Create Timing Netlist根据编译结果(post-map or post-fit)生成时序网表三种方式来执行 1) create_timing_netlist的tcl命令2) Netlist菜单下Create Timing NetlistTcl等价命令3) 任务窗双击第三种方式执行的是默认设置(Post-fit, Slow-corner) 2008 Cytech Technology Ltd., Co18Timing Modelsn默认情况下,Quartus II提供两种PVT条件下的时序模型 -Slow Corner Modell任何单条路径可能出
11、现的性能最慢情况l85 C 结温和VCCMIN条件下的时序-Fast Corner Modell任何单条路径可能出现的性能最快情况l0 C 结温和 VCCMAX条件下的时序nWhy two corner timing models?-要保证setup时序满足slow model-要保证hold时序满足fast modell源同步接口设计中的要点n第三种模式 (slow, 0 C)目前只有Stratix III和CycloneIII支持 2008 Cytech Technology Ltd., Co192) 读取读取SDC文件文件(可选可选) Read SDC Filen从SDC文件读取约束-如
12、果没有SDC文件,可以跳过n执行-read_sdc的tcl命令lread_sdc n读取SDC文件 (任务窗或者Constraints菜单下“Read SDC File”命令)n文件优先级 (如果没有指定文件名)-专门加到QII工程中的文件(Settings中设置)-.sdc (如果存在) 2008 Cytech Technology Ltd., Co203) 约束设计约束设计(可选可选) Constrain designn直接加入新的约束-并没有实际加入到SDC文件中-可以使用GUI(Constraints菜单)或者控制窗输入tcl命令-如果所有约束都在SDC文件中,则不需要再添加约束n实例
13、-create_clock-derive_pll_clocks-set_input_delay -set_output_delay 2008 Cytech Technology Ltd., Co21 约束约束n用户必须输入约束以全面分析设计-TimeQuest 只分析约束过的设计-推荐: 约束所有路径所有路径 (clocks & I/O)n这比听起来要容易,可以读取SDC文件(第2步),在TimeQuest(第3步)中输入约束,或者都做“” 2008 Cytech Technology Ltd., Co224) 更新时序网表更新时序网表 Update Timing Netlistn在当前的时序
14、网表中应用SDC约束n会产生警告-未定义的时钟-部分定义的I/O延迟-组合循环n加入任何新的约束后,需要更新时序网表n执行-Update_timing_netlist的tcl命令-Update Timing Netlist (任务窗或者Netlist菜单下) 2008 Cytech Technology Ltd., Co235) 生成时序报告生成时序报告n验证时序要求,找到违规(Violated)n检查全约束的设计,或者忽略时序约束n使用控制窗输入tcl命令、任务窗双击所需报告或者Reports菜单下 2008 Cytech Technology Ltd., Co24 生成时序报告生成时序报告
15、(续续)n任务窗中选择“Report Setup Summary”生成Setup报告发现有一条路径不满足约束(TNS = Total Negative Slack)n右键点击“Report Timing”生成相关路径的详细报告,直接点击“Report Timing”按钮,默认报告10条路径的信息n查看窗中显示10条路径的报告,分别点击各路径观察详细信息 2008 Cytech Technology Ltd., Co25“过时的过时的”报告报告 “Out of Date” Reportsn再加入新的约束,会导致当前报告“过时”,背景以黄色高亮显示n更新时序网表,重新生成报告再次点击,即可重新生成
16、报告 2008 Cytech Technology Ltd., Co266) 保存时序约束保存时序约束(可选可选) Write SDC Filenwrite_sdc命令-将当前网表的所有约束保存到SDC文件中-如果已有SDC文件,可跳过此步骤。但如果再添加新约束,则需要使用此命令n注意-只有申请时,TimeQuest才生成SDC文件-运行report_sdc命令或执行Reports菜单下“Report SDC”命令,可以看到写入SDC文件的具体内容 2008 Cytech Technology Ltd., CoTimeQuest使用教程使用教程时序分析中的要点 2008 Cytech Tech
17、nology Ltd., Co28时序分析中的要点时序分析中的要点n启动沿(Launch)和锁存沿(Latch)n到达时间和要求时间-建立和保持分析n时序余量(Slack) 2008 Cytech Technology Ltd., Co29启动沿(启动沿(Launch)和锁存沿()和锁存沿(Latch)CLKData ValidDATA启动沿(Launch) :寄存器至寄存器通路上,激活源寄存器的时钟沿锁存沿(Latch Edge):激活目的寄存器的时钟沿边沿关系来自用户的时钟设置 2008 Cytech Technology Ltd., Co30Setup & HoldSetup:时钟到达前
18、,数据和使能信号已经准备好的最 小时间间隔。Hold:能保证有效时钟沿正确采样的数据和使能信号 在时钟沿之后的最小稳定时间。DQCLRPRECLKThValidDATATsuCLKDATA 2008 Cytech Technology Ltd., Co31数据到达时间数据到达时间(Data Arrival Time)数据到达目的寄存器D输入引脚的时间nData Arrival Time = launch edge + Tclk1 + Tco +Tdata Tclk1 :源寄存器时钟路径的延迟 Tco :源寄存器从时钟输入引脚到数据输出引脚的网络延迟 Tdata :寄存器之间数据路径的延迟CLK
19、REG1.CLKTclk1Data ValidREG2.DTdata启动沿Data ValidREG1.QTcoREG1PRED QCLRREG2PRED QCLRTclk1TCOTdata 2008 Cytech Technology Ltd., Co32时钟到达时间时钟到达时间(Clock Arrival Time)时钟到达目的寄存器时钟输入引脚的时间nClock Arrival Time = latch edge + Tclk2 Tclk2 :目的寄存器时钟路径的延迟n如果源寄存器和目的寄存器在同一时钟域上,那么锁存沿等于相对于启动沿的一个周期n如果在时钟不同的时钟域上,那么将采用启动沿
20、与锁存沿实际的时间差CLKREG2.CLKTclk2锁存沿REG1PRED QCLRREG2PRED QCLRTclk2 2008 Cytech Technology Ltd., Co33数据要求时间数据要求时间 - SetupnData Required Time = Clock Arrival Time - Tsu Tsu取决于硬件CLKREG2.CLKTclk2锁存沿TsuData ValidREG2.D数据此时必须有效REG1PRED QCLRREG2PRED QCLRTclk2Tsu 2008 Cytech Technology Ltd., Co34数据要求时间数据要求时间 - Ho
21、ldnData Required Time = Clock Arrival Time + Th Th取决于硬件CLKREG2.CLKTclk2锁存沿Th数据必须保持有效到此时Data ValidREG2.DREG1PRED QCLRREG2PRED QCLRTclk2Th 2008 Cytech Technology Ltd., Co35时序余量时序余量(Slack)nSlack用于衡量时序是否满足设计的程度:正的Slack表示满足时序(时序的裕量),负的Slack表示不满足时序(时序的欠缺量)。nSlack需要分别计算Setup Slack和Hold Slack。 2008 Cytech T
22、echnology Ltd., Co36Tclk2Setup SlackREG2.CLKTsuCLKREG1.CLKTclk1Data ValidREG2.DTdataData ValidREG1.QTco Setup SlackLaunch EdgeLatch EdgeREG1PRED QCLRREG2PRED QCLRTclk1TCOTdataTclk2TsuSetup Slack = Data Required Time Data Arrival Time 2008 Cytech Technology Ltd., Co37Hold SlackREG2.CLKTclk2ThCLKREG1.
23、CLKTclk1Data ValidREG2.DTdataData ValidREG1.QTcoHoldSlackLatch EdgeNext Launch EdgeREG1PRED QCLRREG2PRED QCLRTclk1TCOTdataTclk2ThHold Slack = Data Arrival Time Data Required Time 2008 Cytech Technology Ltd., CoTimeQuest使用教程使用教程设计实例 2008 Cytech Technology Ltd., Co39源同步设计实例源同步设计实例 2008 Cytech Technolo
24、gy Ltd., Co40未加任何约束未加任何约束n经典时序分析器报告c200时钟的Setup Slack为负,提示y_regtwo输出的信号时序有问题 2008 Cytech Technology Ltd., Co41使用使用TimeQuest分析分析n发现c200信号的Setup Slack为负,这里跟前面的经典时序分析结果一致。n在TimeQuest中可以将任何一条问题路径展开,见下页。 Note: TNS = Total Negative Slack. 2008 Cytech Technology Ltd., Co42使用使用TimeQuest分析分析n从路径报告中可以看到,是y_re
25、gtwo输出路径上的延时模块inst24造成了c200信号的时序违例。 2008 Cytech Technology Ltd., Co43使用使用TimeQuest分析分析n从顶层设计中我们看到:x_regtwo和y_regtwo直接连的是选择器(mux_ax & mux_by )的0通道。而选通信号是c100,这就意味着寄存器x_regtwo和y_regtwo只能在c100的负半周期时输出。nTimeQuest假设所有寄存器的输出必须在一个200MHz时钟周期内(第一个5ns或者c100为高)到达乘法器mult,但这只适用于a_regtwo和b_regtwo的输出;y_regtwo的输出经i
26、nst24延时无法满足在c200的第一个周期内到达乘法器, x_regtwo和y_regtwo数据相乘是在c200的第二个周期计算的,在到达乘法器前有10ns时间,这时可以使用多周期约束放宽Setup时间。S1 Default setup edgeH0 Default hold edgeS1H0S1H0S2 Setup edge for setup multicycle of 2 H1 Hold edge for hold multicycle of 1H1S2S2/H11/H0c100c200c100c200 2008 Cytech Technology Ltd., Co44添加多周期约束添
27、加多周期约束 set_multicycle_path -setup -end -from get_pins x_regtwo*|* y_regtwo*|* -to * 2 set_multicycle_path -hold -end -from get_pins x_regtwo*|* y_regtwo*|* -to * 1n解决了时序违例。 2008 Cytech Technology Ltd., Co45Multicycles报告报告No Multicycle 2008 Cytech Technology Ltd., Co46Multicycles报告报告Same path with Se
28、tup Multicycle = 2Latch edge extended by one destination clock cycle 2008 Cytech Technology Ltd., Co47使用使用PLL移相平衡移相平衡Setup/Hold Slackn通过对PLL的输出c2(c100_out)移相-3.61,平衡了源同步输出时钟 clkout的Setup和Hold SlackSlow AnalysisFast AnalysisSetup SlackHold SlackSetup SlackHold Slack7.3930.6738.2610.178n移相前,Slow Corne
29、r Model和Fast Corner Model下clkout的Slack报告(SMALLEST HOLD VALUE SMALLEST SETUP SLACK) 2 = (0.178 7.393) 2 = -3.6075, round up to -3.61(-129.96度度)Slow AnalysisFast AnalysisSetup SlackHold SlackSetup SlackHold Slack3.7834.2834.6513.788 2008 Cytech Technology Ltd., CoTimeQuest使用教程使用教程常见时序优化方法 2008 Cytech
30、Technology Ltd., Co49常见时序优化方法常见时序优化方法n多周期约束的原理n通过PLL相移平衡Setup/Hold Slackn源同步设计中输入输出延时计算 2008 Cytech Technology Ltd., Co50多周期约束(多周期约束( Multicycle Paths )n需要超过一个时钟周期传输的路径n使TimeQuest 选择另一个 latch或launch沿n一些数据不需要在下一个时钟周期就稳定下来,可能在数据发送后几个时钟周期后才起作用n一些数据经过的路径太复杂,延迟太大,不可能在下一个时钟周期就稳定下来,必须要在数据发送后数个周期后才能被采样n没有正确
31、设置Multicycle约束会导致时序违规或过约束(Over-Constrain)nMulticycle设置包括Setup和Hold时间的约束,TimeQuest默认值前者为1,后者为0*-注意:在Quartus II的AE中设置Multicycle约束时,默认Multicycle值是1, Multicycle Hold值等于多周期的值,即如果设置Multicycle为2,则Multicycle Hold 默认为2。-仿真结果显示设置Muticycle不会导致目的寄存器输出增加延时,只是通过其来放松时序衡量的标准。 2008 Cytech Technology Ltd., Co51理解理解Mu
32、lticycle (1)FPGA/CPLDclkreg1PRED QCLRreg2PRED QCLRreg1.clkreg2.clkDVWLaunch edgeLatch edge标准单周期传输,要求源端数据在第一个时钟周期内到达目的端。Multicycle Setup = 1 (Default)Multicycle Hold = 0 (Default)* H0S1*Default hold edge is one edge before/after setup edge在多周期路径的Setup Time检查中,TimeQuest会按照用户指定的周期数延长Data Required Time,
33、放松对相应数据路径的时序约束,从而得到正确的时序余量计算结果;在Hold Time检查中,TimeQuest不会延长Data Required Time,仍然按照单周期路径的分析方式执行(采用Latch edge最近的时钟沿),除非用户指定保持时间对应的多周期个数。 2008 Cytech Technology Ltd., Co52DVW理解理解Multicycle (2)reg1.clkreg2.clkLaunch edgeLatch edge 要求源端数据在第二个时钟沿后、第三个时钟沿前到达目的端。Multicycle Setup = 2Multicycle Hold = 0 (Defau
34、lt) S1S2H0H0*Default hold edge is one edge before/after setup edge; hold edge moves with setup edgeFPGA/CPLDclkreg1PRED QCLRreg2PRED QCLR 2008 Cytech Technology Ltd., Co53DVW理解理解Multicycle (3)要求源端数据在第一个时钟沿后、第三个时钟沿前到达目的端。reg1.clkreg2.clkLatch edgeLaunch edgeMulticycle Setup = 2Multicycle Hold = 1S1S2
35、H1FPGA/CPLDclkreg1PRED QCLRenareg2PRED QENA CLR*Default hold edge is one edge before/after setup edge本例中,路径当中有一个大的组合逻辑模块,因此需要设置多周期保持时间,以防止数据因延时小而提前到达目的端。 2008 Cytech Technology Ltd., Co54其它其它Multicycle情况情况n两个时钟有相位偏差Incorrect Latch edgeCorrect Latch edge12使用 start 将latch沿向后延迟一个周期,放松时序要求。n源时钟频率高-使用sta
36、rt设置 2008 Cytech Technology Ltd., Co55使用使用PLL相位调整平衡相位调整平衡Setup/Hold Slackn相移时间= (worst case hold slack - worst case setup slack) / 2Data valid windowSkewSkewData requiredSetup slackHold slackData requiredLarge hold slackSmall setup slack 2008 Cytech Technology Ltd., Co56源同步设计中输入延时计算源同步设计中输入延时计算nMaxi
37、mum input delay-= + tCOEXT - -= tCLK - tSUFPGAnMinimum input delay-= + tCOminEXT - -= tHFPGAReceiverDriverdata_inclk_inDelayData delayClock delaytCO 2008 Cytech Technology Ltd., Co57源同步设计中输出延时计算源同步设计中输出延时计算nMaximum output delay-= + tSUEXT - -= tSUEXT (忽略PCB延时)nMinimum output delay-= - tHEXT - -= - t
38、HEXT (忽略PCB延时)ReceiverDriverdata_outgen_clkData delayClock delaytSU/tHDelay 2008 Cytech Technology Ltd., Co58源同步设计源同步设计 (中心对齐中心对齐)MaximumMinimumInput delay setting (ns)(latch edge launch edge) - TsuThOutput delay setting (ns)Tsu-ThINCLKDVWDVWTsuThLaunch edgeLatch edge 2008 Cytech Technology Ltd., Co
39、59源同步设计源同步设计 (沿对齐沿对齐)INCLKDVWDVWTsuThLaunch edgeLatch edgeMaximumMinimumInput delay setting (ns)(latch edge launch edge) - Tsu-ThOutput delay setting (ns)TsuTh 2008 Cytech Technology Ltd., Co60TimeQuest的优势的优势n使用方便的 GUI TimeQuest 时序分析器提供使用方便的 GUI 以及交互式报告,进行时序分析。 n对业界标准 SDC 格式的自然支持 您可以利用功能强大的业界标准时序约束格
40、式,使用并反复使用 SDC 格式和工具命令语言 (Tcl) 脚本,进一步提高效率。 n支持复杂的时钟方案 SDC 格式提供更简单但是功能更强大的时序格式,对高级设计组成 (DDR 以及其他源同步协议、复用时钟等 ) 进行快速直接的描述和分析。 n进一步提高性能 与标准时序分析器相比, TimeQuest 时序分析器能够建立更精确的时序行为模型 ( 例如,上升/下降时序模型 ) 。 Hardcopy II 和 65nm 器件系列的性能可以提高 3-5 。 n更简单的 ASIC 原型开发 TimeQuest 时序分析器轻松实现了 ASIC 和 HardCopy 设计的 SDC 约束移植,加速了 ASIC 原型开发。 2008 Cytech Technology Ltd., Co