TimeQuest使用教程中文版.ppt
- 文档编号:16811032
- 上传时间:2023-07-17
- 格式:PPT
- 页数:61
- 大小:2.06MB
TimeQuest使用教程中文版.ppt
《TimeQuest使用教程中文版.ppt》由会员分享,可在线阅读,更多相关《TimeQuest使用教程中文版.ppt(61页珍藏版)》请在冰点文库上搜索。
TimeQuest使用教程,VincentSongQ22008,骏龙科技(西安办事处),2,TimeQuest使用教程,简介使用步骤时序分析中的要点设计实例常见时序优化方法,TimeQuest使用教程,简介,4,TimeQuest时序分析器简介,随着FPGA密度和速率的提高,传统FPGA时序分析工具很难满足复杂程度不同的设计需求。
新的TimeQuest时序分析器可以达到基本和高级时序分析要求,提供完整的GUI环境,建立约束和时序报告,并提供ASIC功能特性,自然地支持业界标准的Synopsys设计约束(SDC)格式,以及全脚本功能。
与标准时序分析器(TAN)相比,TimeQuest(STA)都有明显的优势:
基本时序分析要求-TimeQuest提供使用方便的GUI,建立约束,查看时序报告。
使TimeQuest可以提供和TAN相同的流程,不必再学习SDC或其他的约束格式。
中间时序分析要求-TimeQuest能够自然地支持SDC格式。
TimeQuest简化了SDC学习过程,提供按需的交互式报告功能。
高级时序要求-TimeQuest提供全脚本功能,建立约束,生成报告,管理时序分析流程。
TimeQuest支持高级报告,并且能够建立定制报告。
5,TimeQuest软件及器件支持,QuartusII从6.0版本开始支持TimeQuest时序分析器TimeQuest支持MAXII、Cyclone系列、Stratix系列和HardCopyII器件在QII中选择以上器件时,可以选择使用TAN或STA分析ArriaIIGX、StratixIV(GX/E)器件仅支持STA分析Altera建议在90nm、65nm和40nm工艺节点上所有新设计都使用TimeQuestSDC是约束高速源同步接口(例如DDR和DDR2)和时钟复用设计结构的理想格式,对信号间复杂时序关系可以进行更高效的理解和精细的控制,Settings-TimingAnalysisSettings下选择TAN或STA分析,6,进入TimeQuest,Tools-TimeQuestTimingAnalyzer,或点击按钮,7,TimeQuest界面,8,任务窗,提供对常用操作的快速访问命令执行生成报告按照默认设置执行大部分命令,双击可执行任意命令,9,报告窗,显示目前可以看到的报告列表报告由任务窗产生使用报告命令生成报告,如在控制窗以tcl命令的方式输入,点击对应的报告,在察看窗中了解详细信息,10,查看窗,主观察区显示报告表内容和图形结果,时序报告栏,时序柱状图,路径Slack报告,11,控制窗,直接输入并执行SDC&Tcl命令显示GUI执行的等价命令显示TimeQuest输出消息历史标签记录所有已经执行的SDC&Tcl命令,12,SDCFileEditor=QuartusIITextEditor,在QuartusII或者TimeQuest中都可以利用SDC编辑器创建或者编辑SDCSDC编辑器特性使用GUI对话框进行SDC约束输入语法着色工具提示语法帮助,TimeQuestFile菜单New/OpenSDCFileQuartusIIFile菜单NewOtherFilestab,将光标放到命令上可以看到工具提示,GUI对话框进行SDC输入Edit-InsertConstraint,13,TimeQuest网表基本单元,TimeQuest需要读入布局布线后的网表才能进行时序分析,读入的网表是由一系列的基本单元构成的,包括cell,port,pin等TimeQuest分析器支持收集(Collections)API接口,可以直接访问设计中的网表基本单元。
通过使用收集命令来指定有效的时序约束。
14,TimeQuest网表基本单元,Cells:
Altera器件中的基本结构单元,LE可以看作是CellPins:
Cell的I/O端口,可以认为是LE的I/O端口这里的Pins不包括器件的I/O引脚Nets:
同一个Cell中,从输入Pin到输出Pin经过的逻辑网表中连接两个相邻Cell的连线不被看作Net,被看作同一个点,等价于Cell的Pin连接两个相邻Cell的连线还是具有其物理意义的,等价于Altera器件中的一段布线逻辑,会引入一定的延迟Ports:
顶层逻辑的I/O端口,对应已经分配的器件引脚Clocks:
约束文件中指定的时钟类型的Pin,不仅指时钟输入引脚Keepers:
泛指Port和寄存器类型的CellNodes:
范围更大的一个概念,可能是上述几种类型的组合,还可能是不能穷尽的上述几种类型,TimeQuest使用教程,使用步骤,16,使用TimeQuest的步骤,生成时序网表读取SDC文件(可选)约束设计(可选)更新时序网表生成时序报告保存时序约束(可选)是否使用全部6个步骤取决于你所处的设计流程以及你打算如何使用工具第2步与第3步二者必须选择一个,17,1)生成时序网表CreateTimingNetlist,根据编译结果(post-maporpost-fit)生成时序网表三种方式来执行1)create_timing_netlist的tcl命令,2)Netlist菜单下CreateTimingNetlist,Tcl等价命令,3)任务窗双击,第三种方式执行的是默认设置(Post-fit,Slow-corner),18,TimingModels,默认情况下,QuartusII提供两种PVT条件下的时序模型SlowCornerModel任何单条路径可能出现的性能最慢情况85C结温和VCCMIN条件下的时序FastCornerModel任何单条路径可能出现的性能最快情况0C结温和VCCMAX条件下的时序Whytwocornertimingmodels?
要保证setup时序满足slowmodel要保证hold时序满足fastmodel源同步接口设计中的要点第三种模式(slow,0C)目前只有StratixIII和CycloneIII支持,19,2)读取SDC文件(可选)ReadSDCFile,从SDC文件读取约束如果没有SDC文件,可以跳过执行read_sdc的tcl命令read_sdc读取SDC文件(任务窗或者Constraints菜单下“ReadSDCFile”命令)文件优先级(如果没有指定文件名)专门加到QII工程中的文件(Settings中设置).sdc(如果存在),20,3)约束设计(可选)Constraindesign,直接加入新的约束并没有实际加入到SDC文件中可以使用GUI(Constraints菜单)或者控制窗输入tcl命令如果所有约束都在SDC文件中,则不需要再添加约束实例create_clockderive_pll_clocksset_input_delayset_output_delay,21,约束,用户必须输入约束以全面分析设计TimeQuest只分析约束过的设计推荐:
约束所有路径(clocks&I/O)这比听起来要容易,可以读取SDC文件(第2步),在TimeQuest(第3步)中输入约束,或者都做,“如果你不对其进行约束,那么TimeQuest就不会报告它”,22,4)更新时序网表UpdateTimingNetlist,在当前的时序网表中应用SDC约束会产生警告未定义的时钟部分定义的I/O延迟组合循环加入任何新的约束后,需要更新时序网表执行Update_timing_netlist的tcl命令UpdateTimingNetlist(任务窗或者Netlist菜单下),23,5)生成时序报告,验证时序要求,找到违规(Violated)检查全约束的设计,或者忽略时序约束使用控制窗输入tcl命令、任务窗双击所需报告或者Reports菜单下,24,生成时序报告(续),任务窗中选择“ReportSetupSummary”生成Setup报告发现有一条路径不满足约束(TNS=TotalNegativeSlack)右键点击“ReportTiming”生成相关路径的详细报告,直接点击“ReportTiming”按钮,默认报告10条路径的信息查看窗中显示10条路径的报告,分别点击各路径观察详细信息,25,“过时的”报告“OutofDate”Reports,再加入新的约束,会导致当前报告“过时”,背景以黄色高亮显示更新时序网表,重新生成报告,再次点击,即可重新生成报告,26,6)保存时序约束(可选)WriteSDCFile,write_sdc命令将当前网表的所有约束保存到SDC文件中如果已有SDC文件,可跳过此步骤。
但如果再添加新约束,则需要使用此命令注意只有申请时,TimeQuest才生成SDC文件运行report_sdc命令或执行Reports菜单下“ReportSDC”命令,可以看到写入SDC文件的具体内容,TimeQuest使用教程,时序分析中的要点,28,时序分析中的要点,启动沿(Launch)和锁存沿(Latch)到达时间和要求时间建立和保持分析时序余量(Slack),29,启动沿(Launch)和锁存沿(Latch),CLK,启动沿,锁存沿,DataValid,DATA,启动沿(Launch):
寄存器至寄存器通路上,激活源寄存器的时钟沿锁存沿(LatchEdge):
激活目的寄存器的时钟沿,边沿关系来自用户的时钟设置,30,Setup&Hold,Setup:
时钟到达前,数据和使能信号已经准备好的最小时间间隔。
Hold:
能保证有效时钟沿正确采样的数据和使能信号在时钟沿之后的最小稳定时间。
CLK,DATA,31,数据到达时间(DataArrivalTime),数据到达目的寄存器D输入引脚的时间DataArrivalTime=launchedge+Tclk1+Tco+TdataTclk1:
源寄存器时钟路径的延迟Tco:
源寄存器从时钟输入引脚到数据输出引脚的网络延迟Tdata:
寄存器之间数据路径的延迟,CLK,启动沿,Comb.Logic,32,时钟到达时间(ClockArrivalTime),时钟到达目的寄存器时钟输入引脚的时间ClockArrivalTime=latchedge+Tclk2Tclk2:
目的寄存器时钟路径的延迟如果源寄存器和目的寄存器在同一时钟域上,那么锁存沿等于相对于启动沿的一个周期如果在时钟不同的时钟域上,那么将采用启动沿与锁存沿实际的时间差,CLK,锁存沿,Comb.Logic,33,数据要求时间-Setup,DataRequiredTime=ClockArrivalTime-TsuTsu取决于硬件,CLK,锁存沿,数据此时必须有效,Comb.Logic,34,数据要求时间-Hold,DataRequiredTime=ClockArrivalTime+ThTh取决于硬件,CLK,锁存沿,数据必须保持有效到此时,Comb.Logic,35,时序余量(Slack),Slack用于衡量时序是否满足设计的程度:
正的Slack表示满足时序(时序的裕量),负的Slack表示不满足时序(时序的欠缺量)。
Slack需要分别计算SetupSlack和HoldSlack。
36,SetupSlack,CLK,LaunchEdge,LatchEdge,Comb.Logic,SetupSlack=DataRequiredTimeDataArrivalTime,37,HoldSlack,CLK,LatchEdge,NextLaunchEdge,Comb.Logic,HoldSlack=DataArrivalTimeDataRequiredTime,TimeQuest使用教程,设计实例,39,源同步设计实例,40,未加任何约束,经典时序分析器报告c200时钟的SetupSlack为负,提示y_regtwo输出的信号时序有问题,41,使用TimeQuest分析,发现c200信号的SetupSlack为负,这里跟前面的经典时序分析结果一致。
在TimeQuest中可以将任何一条问题路径展开,见下页。
Note:
TNS=TotalNegativeSlack.,42,使用TimeQuest分析,从路径报告中可以看到,是y_regtwo输出路径上的延时模块inst24造成了c200信号的时序违例。
43,使用TimeQuest分析,从顶层设计中我们看到:
x_regtwo和y_regtwo直接连的是选择器(mux_ax&mux_by)的0通道。
而选通信号是c100,这就意味着寄存器x_regtwo和y_regtwo只能在c100的负半周期时输出。
TimeQuest假设所有寄存器的输出必须在一个200MHz时钟周期内(第一个5ns或者c100为高)到达乘法器mult,但这只适用于a_regtwo和b_regtwo的输出;y_regtwo的输出经inst24延时无法满足在c200的第一个周期内到达乘法器,x_regtwo和y_regtwo数据相乘是在c200的第二个周期计算的,在到达乘法器前有10ns时间,这时可以使用多周期约束放宽Setup时间。
44,添加多周期约束,set_multicycle_path-setup-end-fromget_pinsx_regtwo*|*y_regtwo*|*-to*2set_multicycle_path-hold-end-fromget_pinsx_regtwo*|*y_regtwo*|*-to*1,解决了时序违例。
45,Multicycles报告,NoMulticycle,46,Multicycles报告,SamepathwithSetupMulticycle=2,Latchedgeextendedbyonedestinationclockcycle,47,使用PLL移相平衡Setup/HoldSlack,通过对PLL的输出c2(c100_out)移相-3.61,平衡了源同步输出时钟clkout的Setup和HoldSlack,移相前,SlowCornerModel和FastCornerModel下clkout的Slack报告,(SMALLESTHOLDVALUESMALLESTSETUPSLACK)2=(0.1787.393)2=-3.6075,roundupto-3.61(-129.96度),TimeQuest使用教程,常见时序优化方法,49,常见时序优化方法,多周期约束的原理通过PLL相移平衡Setup/HoldSlack源同步设计中输入输出延时计算,50,多周期约束(MulticyclePaths),需要超过一个时钟周期传输的路径使TimeQuest选择另一个latch或launch沿一些数据不需要在下一个时钟周期就稳定下来,可能在数据发送后几个时钟周期后才起作用一些数据经过的路径太复杂,延迟太大,不可能在下一个时钟周期就稳定下来,必须要在数据发送后数个周期后才能被采样没有正确设置Multicycle约束会导致时序违规或过约束(Over-Constrain)Multicycle设置包括Setup和Hold时间的约束,TimeQuest默认值前者为1,后者为0*注意:
在QuartusII的AE中设置Multicycle约束时,默认Multicycle值是1,MulticycleHold值等于多周期的值,即如果设置Multicycle为2,则MulticycleHold默认为2。
仿真结果显示设置Muticycle不会导致目的寄存器输出增加延时,只是通过其来放松时序衡量的标准。
51,理解Multicycle
(1),FPGA/CPLD,clk,reg1.clk,reg2.clk,Launchedge,Latchedge,标准单周期传输,要求源端数据在第一个时钟周期内到达目的端。
MulticycleSetup=1(Default)MulticycleHold=0(Default)*,H0,S1,*Defaultholdedgeisoneedgebefore/aftersetupedge,在多周期路径的SetupTime检查中,TimeQuest会按照用户指定的周期数延长DataRequiredTime,放松对相应数据路径的时序约束,从而得到正确的时序余量计算结果;在HoldTime检查中,TimeQuest不会延长DataRequiredTime,仍然按照单周期路径的分析方式执行(采用Latchedge最近的时钟沿),除非用户指定保持时间对应的多周期个数。
52,理解Multicycle
(2),reg1.clk,reg2.clk,Launchedge,Latchedge,要求源端数据在第二个时钟沿后、第三个时钟沿前到达目的端。
MulticycleSetup=2MulticycleHold=0(Default),S1,S2,H0,H0,*Defaultholdedgeisoneedgebefore/aftersetupedge;holdedgemoveswithsetupedge,53,理解Multicycle(3),要求源端数据在第一个时钟沿后、第三个时钟沿前到达目的端。
reg1.clk,reg2.clk,Latchedge,Launchedge,MulticycleSetup=2MulticycleHold=1,S1,S2,H1,*Defaultholdedgeisoneedgebefore/aftersetupedge,本例中,路径当中有一个大的组合逻辑模块,因此需要设置多周期保持时间,以防止数据因延时小而提前到达目的端。
54,其它Multicycle情况,两个时钟有相位偏差,IncorrectLatchedge,CorrectLatchedge,1,2,使用start将latch沿向后延迟一个周期,放松时序要求。
源时钟频率高使用start设置,55,使用PLL相位调整平衡Setup/HoldSlack,相移时间=(worstcaseholdslack-worstcasesetupslack)/2,Largeholdslack,Smallsetupslack,56,源同步设计中输入延时计算,Maximuminputdelay=+tCOEXT-=tCLK-tSUFPGAMinimuminputdelay=+tCOminEXT-=tHFPGA,Receiver,Driver,data_in,clk_in,Delay,Datadelay,Clockdelay,tCO,57,源同步设计中输出延时计算,Maximumoutputdelay=+tSUEXT-=tSUEXT(忽略PCB延时)Minimumoutputdelay=-tHEXT-=-tHEXT(忽略PCB延时),Receiver,Driver,data_out,gen_clk,Datadelay,Clockdelay,tSU/tH,Delay,58,源同步设计(中心对齐),INCLK,DVW,DVW,Tsu,Th,Launchedge,Latchedge,59,源同步设计(沿对齐),INCLK,DVW,DVW,Tsu,Th,Launchedge,Latchedge,60,TimeQuest的优势,使用方便的GUITimeQuest时序分析器提供使用方便的GUI以及交互式报告,进行时序分析。
对业界标准SDC格式的自然支持您可以利用功能强大的业界标准时序约束格式,使用并反复使用SDC格式和工具命令语言(Tcl)脚本,进一步提高效率。
支持复杂的时钟方案SDC格式提供更简单但是功能更强大的时序格式,对高级设计组成(DDR以及其他源同步协议、复用时钟等)进行快速直接的描述和分析。
进一步提高性能与标准时序分析器相比,TimeQuest时序分析器能够建立更精确的时序行为模型(例如,上升/下降时序模型)。
HardcopyII和65nm器件系列的性能可以提高3-5。
更简单的ASIC原型开发TimeQuest时序分析器轻松实现了ASIC和HardCopy设计的SDC约束移植,加速了ASIC原型开发。
Thanks!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- TimeQuest 使用 教程 中文版
![提示](https://static.bingdoc.com/images/bang_tan.gif)