【资料】静态时序分析汇编

合集下载

静态时序分析原理解读及实例应用

静态时序分析原理解读及实例应用

静态时序分析原理解读及实例应用摘要:静态时序分析(Static Timing Analysis)是FPGA(现场可编程逻辑器件)分析电路时序的最坏情况,验证此时的电路性能是否满足用户的时序要求。

静态时序分析的目的是提高系统工作主频及增加系统的稳定性。

关键词:静态时序分析;FPGA;关键路径引言静态时序分析是基于电路的拓扑结构,计算逻辑单元延时和互联延时,提取出整个电路的所有时序路径,找出延时最大的关键路径,确定电路工作时所能达到的最大频率,并检查建立时间和保持时间余量,其目的是检查FPGA 芯片中设计电路的延时和速度等性能指标,分析电路时序的最坏情况,验证此时的电路性能是否满足用户的时序要求。

相比较于动态时序仿真具备更加高效和完备的特点。

目前比较流行的静态时序分析工具有Prime Time,TimeQuest Timing Analyzer、Vivado系列等工具。

1时序中的基本概念1.1时钟周期和最高频率时序路径分为输入端口到内部寄存器路径,内部寄存器到寄存器路径,内部寄存器到输出端口路径,FPGA内部时序分析的对象为“寄存器—寄存器”路径,时序逻辑设计都是基于时钟沿的。

在Quar tusⅡ下的时序分析器TimeQuest的时序报告中有启动沿和锁存沿的概念,它们是针对时钟而言的。

启动沿(launch edge):前级寄存器发送数据时对应的时钟沿,是时序分析的起点。

锁存沿(latch edge):后级寄存器捕获数据时对应的时钟沿,是时序分析的终点。

锁存沿一般默认与启动沿相差一个时钟周期。

时钟周期的概念是FPGA 中时序定义的基础,根据图1计算时钟最小周期。

图1时钟周期的计算时钟最小时钟周期计算式为:T clk= τco+ τdata_dalay+ τsu−τclk_skew(式1)其中τclkskew= τclk1−τclk2(式2)式1中,T clk是时钟的最小周期。

τco是寄存器固有的时钟到输出延迟,是寄存器的固有属性,指的是寄存器相应时钟沿有效,将数据送到输出端口的内部延时参数,典型值一般小于1ns。

静态时序分析(Static Timing Analysis)

静态时序分析(Static Timing Analysis)

STA Vs Event Simulation
Event Driven Timing simulation STA
Vector Generation Design Coverage Runtime Capacity
Required Vector dependent(limited) coverage Takes several days/weeks of CPU time Can run out of memory for multimillion designs No special features for timing sis
静态时序分析
潘伟涛
主要内容
• • • • • What is STA? Why STA? What STA do? When STA? How to do STA?
STA的概念
静态时序分析简称STA(Static Timing Analysis),是一种针对大 规模门级电路进行时序验证的有效方法。它只需要根据电路网表 的拓扑,就可以检查电路设计中所有路径的时序特性,测试路径 的覆盖率理论上可以达到100%,从而保证时序验证的完备性; 同时由于不需要测试向量,所以STA验证所需时间远小于门级仿 真时间。
Analysis/Debug features
Design style support
No Restrictions
STA in the ASIC Design Flow
Tech Library HDL Source
Pre-layout STA
Module netlists Constraints STA models Logic synthesis
• The STA tool: Builds netlist in memory Exhaustively traces every possible timing path Computes and propagates delays and skews Determines critical paths Reports timing paths, violations, etc

第06章 静态时序分析

第06章 静态时序分析

一.静态时序分析中路径延时的计算静态时序分析工具一般将电路网表看成一个拓扑图,图中的节点(node)代表电路中的引脚(pin)。

节点之间的边(edge)表示时序弧(timing arc),有两种:# 连线延时(net delay)---驱动引脚(drive pin)和扇出(fanout)之间的连接# 单元延时(cell delay)---输入引脚(input pin)和输出引脚(output pin)之间的连接延时计算就是计算每条时序弧的值,可能是单元延时也可能是连线延时。

通过累计这些延时可以计算时序路径(timing delay)的上升延时(rise delay)或下降延时(fall delay)。

正函数时序弧(positive unate timing arc):将上升延时和上升延时相加,下降延时和下降延时相加。

例如一个AND门单元延时和连线延时。

负函数时序弧(negative unate timing arc):将新得到的上升延时和原来的下降延时相加,而新得到的下降延时和原来的上升延时相加。

例如NAND门。

非函数时序弧(non-unate timing arc):将原来的延时和新得到的最差情况延时(worst-case delay)相加。

非函数时序弧出现在不能从输入量的变化预测输出端逻辑值变化的地方,例如XOR门。

下图展示了一个电路逻辑网络是如何转化成一张时序图的:非线性延时模型(nonlinear delay model):非线性模型是供应商以查表(lookup table)形式在工艺库中提供的延时信息,它和时序分析计算有着紧密的联系。

总的延时包含了单元延时和连线延时:Dtotal = Dcell + DcDc连线延时。

它有两种计算方法,一是通过operating_conditions中的tree_type属性和wire_load模型;二是在标准延时方程中读入一个SDF文件。

Dcell门自身的延时,典型地是取从输入引脚电压变化到50%到输出引脚电压变化到50%的之间的时间。

静态时序分析(Static Timing Analysis)基础

静态时序分析(Static Timing Analysis)基础

静态时序分析(Static Timing Analysis)基础及应用◎陈麒旭前言在制程进入深次微米世代之后,芯片(IC)设计的高复杂度及系统单芯片(SOC)设计方式兴起。

此一趋势使得如何确保IC质量成为今日所有设计从业人员不得不面临之重大课题。

静态时序分析(Static Timing Analysis简称STA)经由完整的分析方式判断IC是否能够在使用者的时序环境下正常工作,对确保IC质量之课题,提供一个不错的解决方案。

然而,对于许多IC设计者而言,STA是个既熟悉却又陌生的名词。

本文将力求以简单叙述及图例说明的方式,对STA的基础概念及其在IC设计流程中的应用做详尽的介绍。

什么是STA?STA的简单定义如下:套用特定的时序模型(Timing Model),针对特定电路分析其是否违反设计者给定的时序限制(Timing Constraint)。

以分析的方式区分,可分为Path-Based及Block-Based两种。

先来看看Path-Based这种分析方式。

如图一所示,信号从A点及B点输入,经由4个逻辑闸组成的电路到达输出Y点。

套用的Timing Model标示在各逻辑闸上,对于所有输入端到输出端都可以找到相对应的延迟时间。

而使用者给定的Timing Constraint为:1.信号A到达电路输入端的时间点为2(AT=2,AT为Arrival Time)。

2.信号B到达电路输入端的时间点为5(AT=5)。

3.信号必须在时间点10之前到达输出端Y(RT=10,RT为Required Time)。

现在我们针对P1及P2两条路径(Path)来做分析。

P1的起始点为A,信号到达时间点为2。

经过第1个逻辑闸之后,由于此闸有2单位的延迟时间,所以信号到达此闸输出的时间点为4(2+2)。

依此类推,信号经由P1到达输出Y的时间点为7(2+2+3)。

在和上述第三项Timing Constraint比对之后,我们可以得知对P1这个路径而言,时序(Timing)是满足使用者要求的。

静态时序分析中建立时间和保持时间关系详解总结

静态时序分析中建立时间和保持时间关系详解总结

建立时间和保持时间关系详解______________ X 数搭___________________-1 £U'未时钟班X建立时间th:保持时间图1建立时间(setup time)是指在触发器的时钟信号上升沿到来以前,数据稳定不变的时间,如果建立时间不够,数据将不能在这个时钟上升沿被打入触发器;保持时间(hold time)是指在触发器的时钟信号上升沿到来以后,数据稳定不变的时间,如果保持时间不够,数据同样不能被打入触发器。

如图1。

数据稳定传输必须满足建立和保持时间的要求,当然在一些情况下,建立时间和保持时间的值可以为零。

PLD/FPGA开发软件可以自动计算两个相关输入的建立和保持时间。

个人理解:1、建立时间(setup time)触发器在时钟沿到来之前,其数据的输入端的数据必须保持不变的时间;建立时间决定了该触发器之间的组合逻辑的最大延迟。

2、保持时间(hold time)触发器在时钟沿到来之后,其数据输入端的数据必须保持不变的时间;保持时间决定了该触发器之间的组合逻辑的最小延迟。

关于建立时间保持时间的考虑华为题目时钟周期为T,触发器D1的建立时间最大为T1max,最小为Timin。

组合逻辑电路最大延迟为T2max,最小为T2min。

问:触发器D2的建立时间T3和保持时间T4应满足什么条件?分析:Tffpd :触发器输岀的响应时间,也就是触发器的输岀在clk时钟上升沿到来之后多长的时间内发生变化并且稳定,也可以理解为触发器的输岀延时。

Tcomb :触发器的输岀经过组合逻辑所需要的时间,也就是题目中的组合逻辑延迟。

Tsetup :建立时间Thold :保持时间Tclk :时钟周期建立时间容限:相当于保护时间,这里要求建立时间容限大于等于0。

保持时间容限:保持时间容限也要求大于等于0elk由上图可知,建立时间容限= Tclk-Tffpd(max)-Tcomb(max)-Tsetup ,根据建立时间容限>0也就是Tclk-Tffpd(max)-Tcomb(max)- Tsetup >0 可以得到触发器D2 的Tsetup <C1k-Tffpd(max)-T comb(max),由于题目没有考虑Tffpd,所以我们认为Tffpd = 0,于是得到Tsetup<T-T2max---------------------- 1 elk-----------------------由上图可知,保持时间容限+Thold = Tffpd(min)+T comb(min),所以保持时间容限=Tffpd(min)+Tcomb(min)-Thold,根据保持时间容限>0,也就是Tffpd(min)+T comb(min)- Thold >0可以得到触发器D2的Thold < Tffpd(min)+icomb(min),由于题目没有考虑Tffpd,所以我们认为Tffpd = 0,于是得到Thold < T2min关于保持时间的理解就是,在触发器D2的输入信号还处在保持时间的时候,如果触发器的输岀已经通过组合逻辑到达D的输入端的话,将会破坏D2本来应该保持的数据2Teo表示dff从输入到输出延时;Tlogic表示组合逻辑延时;Tsu表示dff的建立时间;Thold表示dff的保持时间。

静态时序分析总结

静态时序分析总结

Static Timing Analyzer UsingPrimeTimeDec 23 2007Presented by zhaoicdesign_zhao@Agenda☞Basic Flow⏹Advanced Analysis ⏹Summary⏹ExampleSTA instruction⏹Static timing analysis conceptVerifies timing (setup, hold …)Is exhaustiveUses formal, mathematical techniques instead of vectorsDoes not use dynamic logic simulation⏹STA : Easier, faster debugging of your design timingComprehensive Timing Checks⏹Many types of timing and design rule checks Timing checks can be delay calculated or SDF annotated Setup and hold checkDesign rule checks consistent with DC, PC, AstroBasic Timing Analysis Flow Using PrimeTime ⏹Setup Design EnvironmentSearch path, link pathRead designs, libraries, then linkRead sdf and set operation condition, environment setting⏹Specify Timing AssertionsClock period/waveform/uncertainty/latencyInput/output delays⏹Specify Timing ExceptionsMulti-cycle paths and False pathsMin/max delays, segmentation, disabled arcs⏹Perform Analysis, Create ReportsCheck timingTiming reports and constraint reportsBottleneck and coverage analysis reportsSet Up Environment⏹Definitionssearch_path:specifies where to search for design and library datalink_path:specifies which design and library data to be loadedduring linking (link_design)link_design:command resolves all design references⏹Example:pt_shell > set search_path “. ./syn/lib”pt_shell > set link_path “* stdcell.db. IO.db memory.db”pt_shell > read_verilog $project_dir/top.vpt_shell > current_design toppt_shell > link_designpt_shell > read_sdf -type sdf_max $sdf_dir/top.sdf⏹Design tip1. The setup is different with DC setup2. Before new design was load, removed old design and constraint3. report_annotated_delay: Report backannotated delays4. report_annotated_check: Report backannotated timing checksOperating condition and design environment ⏹Setting the operating conditions, wire-load models,input/output environment⏹Examplept_shell > set_operating_conditions -library pt_lib \-analysis_type on_chip_variation worstpt_shell > set_wire_load_mode enclose (pre gate)pt_shell > set_wire_load_model std_100k_w (pre gate)pt_shell > remove_wire_load_model (post gate)pt_shell > set_driving_cell -lib_cell OR2 [all_inputs] (core level)pt_shell > set_driving_cell -lib_cell IO/PAD (chip level)pt_shell > set_load -load_of [expr std/nd2/A*8] (core level)pt_shell > set_load -load_of [expr IO_CELL1/A*8] (chip level)⏹Design tip1. Wire load model is different in pre-gate and post-gate2. Load and drive are different between core level and chip level3. report_design: report operation conditionsClock assertions⏹The basic timing assertions for the design alwaysfrom Clock information⏹Examplept_shell > create_clock -name CLK -period 30 [get_port CLOCK]pt_shell > set_clock_uncertainty -setup 0.5 [all_clocks]pt_shell > set_clock_uncertainty -hold 0.5 [all_clocks]pt_shell > set_clock_latency -min 3.5 [get_clocks CLK]pt_shell > set_clock_latency -max 5.5 [get_clocks CLK]pt_shell > set_clock_transition -rise 0.25 [get_clocks CLK]pt_shell > set_clock_transition -fall 0.3 [get_clocks CLK]pt_shell > set_propagated_clock [all_clocks] (post-gate)⏹Design tip1. Clock uncertainty is different between pre-gate and post-gate2. Internal clock and external clock set different3. Post-gate set to propagate clock4. Created clock should be in port or cell pinInput and output delay assertions⏹Specify signal arrival/required times at all portsrelative to clocks in chip level⏹Examplept_shell > set_input_delay 5.0 -clock ClkA [all_inputs]pt_shell > set_input_delay 3.0 -clock Vclk[remove_from_collection [all_inputs] [get_port clki]] pt_shell > set_output_delay 4.0 -clock ClkB [get_ports input2]⏹Design tip1. For bidirectional ports, use both set_input_delayand set_output_delay2. To asynchronous IO, using virtual clock to set delayTiming Exceptions (1)⏹Timing exceptions (multi-cycle and false)Setup multi-cycle:The maximum number of clock cycles allowed for a signal to traverse a given pathHold multi-cycle:The number of clock cycles before the hold check False path:Ignored the special path timing check⏹Examplept_shell > set_multicycle_path -setup 2 -hold 1 -from rega/Q -to regb/D pt_shell > set_multicycle_path -setup 4 -hold 3 -through A -through Bpt_shell > set_false_path -from clkA -to clkBpt_shell > set_false_path -from rega/Q -to regb/D⏹Design tip1. False time setting can reduce CPU runtime2. Timing exceptions must be cautious and reasonable3. The set point should be pin or port for the compatible in gate and RTLTiming Exceptions (2)⏹Timing exceptions (max/min delay, disable arcs)Max/min delay:Normally, the constraint was used in Asynchronouscombinational logic that can‟t be set by clock.Disable arcs:Ignore the path timing check through arc⏹Examplept_shell > set_max_path 2.5 -from [get_pin pda/D] -to [get_pin nd/A]pt_shell > set_min_path 4.5 -from [get_pin nd/A] -to [get_pin pda/D]pt_shell > set_disable_timing [get_pin Addr/nd/A]⏹Design tip1. Max/min delay path will be report by violator2. Disable timing should be a timing group or special pathCheck timing⏹To identify problems with design or assertionsbefore spend time on detailed reports⏹The list of checks performed by check_timingUnconstrained endpointsCombinational loopsMissing clock definitionsLatch fanout problemsGenerated clocks consistentIgnored timing exceptionsPorts with missing input delayno driving cell⏹Design tip1. Before the detailed timing report debug, the check_timing reportmust be debugged2. Before the detailed timing report debug, should can explainwarnings in the log filesConstraint and timing report⏹List all violations, sorted by clock domain1. Syntax: report_constraint <options>2. -max_delay or -min_delay option: check setup or hold violation3. -all_violators -verbose option: report all violation in detailed⏹Report all timing information1. Syntax: report_timing <options>2. -delay_type: max, min, max_min, max_rise, min_rise …3. -from/to/through/exclude, -max_path, -nworst, -path, -path_type …4. -net, -cap, -input_pins, -slack_lesser_than, -slack_greater_than …⏹Design Tip1. report_constraint -all_violators -verbose : use long run time2. report_timing -max_path: more path, longer run time3. timing_report_unconstraited_path: can disable unconstraint pathBottleneck and coverage analysis⏹Bottleneck for check the design bottleneck path1. Report bottleneck cells contributing to multiple violations2. Use report_bottleneck <options>⏹To summarize timing checks met, violated, untested1. List all violations, sorted by slack2. Determine if your analysis is complete3. Show untested checks and reason why not tested4. Use report_analysis_coverage -status_details {untested}⏹Design tip1. Should confirm the correct path before debug violation report2. Should confirm the constraints and SDF correct before debugviolations report3. Successfully identify and debug your timing violations beforesignoffAgenda⏹Basic Flow☞Advanced Analysis⏹Summary of Constraint ⏹ExampleAdvanced Analysis using Prime Time ⏹Analysis Modes⏹Case Analysis⏹Multiple Clocks per Register⏹Minimum Pulse Width Checks⏹Derived Clocks and Virtual Clock⏹Clock Gating Checks⏹Clock Timing Reporting⏹Recovery and Removal⏹Clock Reconvergence Pessimism⏹Non-unated Clock Path⏹Latch Timing Borrowing⏹Debugging Delay Calculation⏹……Analysis Mode⏹Primetime performs analysis based uponSingle: Only a single set of delays may be applied to the designBC_WC:Always use max delay to check setup and use min delay to check hold (optimistic)On Chip Variation (OCV): use data path max delays and clock path min delays to check setup; use data path min delays and clockpath max delays to check hold (pessimistic)⏹Design tip1. Analysis mode: after clock tree synthesis and with propagatedclocks.2. Use report_design to see which analysis mode is used3. Prime time don‟t suggest to use single mode for a single PVTcorner and a single slew propagationCase Analysis⏹Concept1. User specify logic constants (…1‟ or …0‟) or logic transitions (…rise‟ or …fall‟) on pins or ports of the design2. Appropriate arcs are disabled where the case value stops3. Syntax: set_case_analysis 0|1 port_or_pin_list⏹ExampleSTA normal modept_shell > set_case_analysis \0 scan_en ⏹Design tip1. remove_case_analysis: Remove case analysis value on input2. report_case_analysis: Report case analysis on ports and pins3. Function mode and scan mode should be independent analyze Q CK DTest_clk Main_clk Scan_en 1Multiple Clocks per RegisterMultiple clocks analysis don’t use case analysis1. Specify clock group informationset_clock_groups -group <clock_list>2. Set active clocks to be analyzed togetherset_active_clocks <clock_list>3. Remove the clock groupsremove_clock_groups [-name <name_list>] [-all]4. Report clock groups setreport_clock [-groups]Minimum Pulse Width Checks⏹Specify min pulse width checks1. This check can either be specified in the technology library for each appropriate cell (FF, Memory etc)2. User specify a check with set_min_pulse_width⏹Example⏹Design tip1. report_min_pulse_width: Report min pulse width check2. Minimum pulse width checks can be back-annotated from SDF Q CK Dclock U2U1clock U1/Z U2/ZFF/CK min-pulse widthDerived Clocks and Virtual Clock⏹To specify a clock derived from an existing clockcreate_generated_clockVirtual clock: clock objects without a source⏹Examplept_shell > create_generated_clock -divide_by 2 \-source sys_clk [get_pins FF1/Q]pt_shell > create_generated_clock -multiply_by 3 \-source sys_clk [get_pins div3/Q]pt_shell > create_clock -name vclk –period 10 –waveform [0,5]⏹Design tip1. Primetime will automatically calculate the latency (delay) fromthe source clock to the generated clock in gate level2. Use virtual clock to constraint the asynchronous input or output3. timing_report_unconstrained_paths: report unconstraint pathClock Gating Checks⏹Gated clocks can cause glitch clocks if gating signal changes during the active portion of the clock ⏹Glitch bring⏹Example pt_shell > set_clock_gating_check -setup 0.25 -hold 0.1 CLK⏹Design tip1. set_disable_clock_gating_checks: disable clock gating check2. In library, the clock gating cell has setup and hold timing check3. User can specify the clock gating check value4. Use latch or ICG to gate clock for avoiding glitch5. report_clock_gating_check: report all clock gating checks perform Q CK Dclockgateclock gateFF/CKClock Timing Reporting⏹Primetime is capable of analyzing clock latency, clock skew(including inter-clock skew) and clock transition attributes of a clock network after CTS automatically⏹Syntaxreport_clock_timing –type \<skew, interclock_skew, latency, transition, summary>⏹Examplept_shell > report_clockpt_shell > report_clock_timing –from ff1/CK -to ff2/CK –setup \–type interclock_skewRecovery and Removal⏹Asynchronous control signal timing checkRecovery:required minimum time for asynchronous signal to become inactive and a subsequent active edge of the clock (similar to setup)Removal:required minimum time between a clock edge that occurs while an asynchronous control signal is active and the subsequent removal of the asynchronous signal (similar to hold)⏹Diagram Q CK D CKclrN clock clock clrNFF/CKmax arrivedmin arrivedremoval recoveryClock Reconvergence Pessimism⏹CRPShare the path delay before common pointcommon pointclock⏹RCRP: Removal of CRP from STAUsing CRPR analysis results in a more accurate (less pessimistic) analysis, but use more runtime and memory⏹Design tip1. Timing inaccuracy due to different delays before common point2. When performing on-chip variation, set the variable below to trueto remove CRP before beginning timing analysis:set timing_remove_clock_reconvergence_pessimism trueNon-unated Clock Path⏹Unated clock pathClock polarity can be determined independent of other combinational inputs⏹Non-unated clock pathClock polarity is dependent of other combinational inputs⏹Design tip1. The No-unated clock path will be report warning in timing update2. Break Non-unated path into expected path to analysis clock r r f clock clock clockLatch Timing Borrowing⏹Time borrow:Allows data to arrive after the latch opens for setup⏹Timing analysis1. schematic2. waveformDout_ff Latch FFDinClockDout_ldclockDinDout_ldDout_ffborrow time“0” borrowDebugging Delay Calculation⏹Delay calculation determines the time to propagatea transition across a net or cell timing arc.⏹Pre-layout1. Synopsys delay model from library : Nonlinear Delay, etc2. Wire load models for net estimation⏹Post-layout1. Accurate analysis with detailed parasitics2. SDF from vendor delay calculator can be used directly⏹Examplept_shell > report_timing -net -cap -input_pinspt_shell > report_delay_calculation -from U62/Z -to U26/AAgenda⏹Basic Flow⏹Advanced Analysis ☞Summary⏹ExamplePrimetime Inputs and Output Primetime sdf netlist libraries constraints Timing report Other violatorComplete the Run Script in PrimetimeSource Application VariablesRead netlist and sdfConstraintValidate constraintTiming reportSummary reportPrint message and quit./pt_run.tclSummary of CommandRead design and libraryset search_path set link_pathread_db, read_verilog … read_sdflink_design read_parasticsSpecify the environment and analysis condition set_operating_conditions set_wire_load_modelset_drive set_loadset_input_delay set_output_delayConstrain designcreate_clock create_generated_clockset_clock_uncertainty set_clock_latencyset_multicycle_path set_false_pathset_case_analysis set_disable_timingCheck design and analysis setupupdate_timing check_timingreport_clock report_libreport_design report_referencePerform full analysis and examine resultsreport_timing report_constraintreport_analysis_coverage report_bottleneckAgenda⏹Basic Flow⏹Advanced Analysis ⏹Summary☞ExampleRun Script Exampleset search_path "../syn/lib"set link_path " * std.db IO.db MEM.db "read_verilog $gate/top.vread_sdf -type sdf_max $gate/top.sdfcurrent_design toplinkset_operating_conditions -analysis_type \on_chip_variation wcremove_wire_load_modelcreate_clock -name mclk -period 8 -waveform [0,4] [get_pin PLL/clkout]create_generated_clock -name dclk -divide_by 2 [get_pin dclk/Q] -source [get_pin PLL/clkout] create_clock -name vclk -period 10 –waveform [0, 5] set real_clock [remove_from_collection [all_clocks] [get_clocks {vclk }]]set_uncertainty -rise 0.2 -fall 0.1 $real_clockset_propogated_clock $real_clockset_input_delay 6 -clock vclk [all_inputs]set_output_delay 4 -clock vclk [all_inputs]set_driving_cell -library IO_CELL -lib_cell IO_Out -pin PAD [all_inputs]set_load 180 [all_outputs]set_case_analysis 0 core/scan_reg/Qset_case_analysis 1 core/dclken_reg/Qset_false_path -from $real_clock -to vclkset_false_path -from vlk -to $real_clockset_multicycle_path 2 -setup -from [get_pin core/reg1/*] -to [get_pin core/mult1/reg2/*]set_multicycle_path 1 -hold -from [get_pin core/reg1/*] -to [get_pin core/mult1/reg2/*]set_disable_clock_gating_check core/nand100set_disable_timing [get_pin core/nand200/A]set_max_transition 0.8 topset_max_fanout 16 topupdate_timing -fullcheck_timingreport_designlist_libraries -only_usedreport_analysis_coveragereport_timing -delay_type max -nosplitreport_timing -delay_type min -nosplitreport_constraints -all_violators -verbosequitExample1: Setup Timing Report (1)⏹Logic data path diagram⏹Primetime setup checkclockpath1 + datapathmax -clockpath2 + setup <= clock period⏹Setup timing check waveformFF1/CKFF2/CKclk skewdata arrivedsetupCombinationallogicFF1DCKQFF2DCKNQ ct2ct3ct1clkarrive timesetupExample1: Setup Timing Report (2)Report_timing -delay maxStartpoint: FF1 (rising edge-triggered flip-flop clocked by Clk)Endpoint: FF2 (falling edge-triggered flip-flop clocked by Clk)Path Group: Clk Path Type: maxPoint Incr Path ---------------------------------------------------------------------------------------------clock Clk (rise edge) 0.00 0.00clock network delay (propagated) 1.10 * 1.10FF1/CK (fdef1a15) 0.00 1.10 r FF1/Q (fdef1a15) 0.50 * 1.60 r U2/Y (buf1a27) 0.11 * 1.71 r …………………..U3/Y (buf1a27) 0.11 * 3.82 r FF2/D (fdef1a15) 0.05 * 3.87 r data arrival time 1.87clock Clk (fall edge) 4.00 4.00clock network delay (propagated) 1.00 * 5.00FF2/CKN (fdef1a15) 5.00 r library setup time -0.21 * 4.79data required time 4.79----------------------------------------------------------------------------------------------data required time 4.79data arrival time -3.87-----------------------------------------------------------------------------------------------slack (MET) 0.92HeaderDataArrivalDataRequired SlackExample2: Hold Check Report(1)⏹Logic data path diagram⏹Primetime hold checkclockpath1 + datapathmin -clockpath2 -hold >= 0⏹Hold timing check waveformCombinationallogicFF1DCKQFF2DCKQ ct2ct3ct1clkholdarrive timeFF1/CK FF2/CKclk skewdata arrivedhold FF2/DExample2: Hold Check Report(2)Report_timing -delay minStartpoint: FF1 (rising edge-triggered flip-flop clocked by Clk)Endpoint: FF2 (rising edge-triggered flip-flop clocked by Clk)Path Group: Clk Path Type: maxPoint Incr Path ---------------------------------------------------------------------------------------------clock Clk (rise edge) 0.00 0.00clock network delay (propagated) 1.00 * 1.00FF1/CK (fdef1a15) 0.00 1.00 r FF1/Q (fdef1a15) 0.40 * 1.40 f U2/Y (buf1a27) 0.05 * 1.45 f …………………..UN/Y (buf1a27) 0.11 * 1.82 r FF2/D (fdef1a15) 0.05 * 1.87 r data arrival time 1.87clock Clk (rise edge) 0.00 0.00clock network delay (propagated) 1.20 * 1.20FF2/CK (fdef1a15) 1.20 r library setup time 0.10 * 1.30data required time 1.30----------------------------------------------------------------------------------------------data required time 1.30data arrival time -1.87-----------------------------------------------------------------------------------------------slack (MET) 0.57HeaderDataArrivalDataRequiredSlackThanksFeedback to azhao allenzhao918@。

静态时序分析基本原理和时序分析模型

静态时序分析基本原理和时序分析模型

静态时序分析基本原理和时序分析模型静态时序分析是指对程序在其编译阶段或者运行阶段进行的一种分析方法,通过对程序的代码进行解析和推理,从而分析出程序执行的正确性、性能、资源消耗等方面的信息。

静态时序分析可以帮助开发人员在代码实现阶段尽早发现和解决问题,提高代码的可靠性和可维护性。

1.控制流分析:静态时序分析首先通过控制流分析,构建程序的控制流图。

控制流图由程序中的所有语句和它们之间的控制流关系构成,用来描述程序的执行路径和顺序。

静态时序分析可以通过控制流图来寻找潜在的执行路径问题,如死循环、无法到达的代码等。

2.数据流分析:静态时序分析还可以进行数据流分析,通过对程序中变量的定义和使用关系进行分析,确定变量在不同的执行路径上的值。

数据流分析可以帮助发现未初始化变量、未使用变量等问题。

3.依赖分析:静态时序分析可以进行依赖分析,分析程序中不同语句之间的依赖关系,确定一些语句执行的前提条件。

依赖分析可以帮助发现多线程竞争、资源争用等问题。

静态时序分析的依赖分析可以通过指针分析、函数调用分析等方式实现。

4.前向分析和后向分析:静态时序分析可以进行前向分析和后向分析。

前向分析从程序的入口点开始,根据程序的控制流图,逐个语句地分析程序的执行路径。

后向分析从程序的出口点开始,反向分析程序的执行路径。

通过前向分析和后向分析,可以找到程序的执行路径,帮助发现执行路径上的问题。

时序分析模型是静态时序分析的抽象表示,可以用来描述程序的执行顺序和时序约束。

常见的时序分析模型包括Petri网、有限状态机等。

1. Petri网:Petri网是一种常用的时序分析模型,它可以描述系统中不同活动之间的顺序和并发关系。

Petri网由节点和有向弧组成,节点表示活动,弧表示活动之间的关系。

通过对Petri网的分析,可以推理出系统的行为和时序约束。

2.有限状态机:有限状态机是描述系统行为的一种抽象模型,它可以把系统的执行顺序表示为一个状态转移图。

静态时序分析(Static

静态时序分析(Static

静态时序分析(Static Timing Analysis)基础与应用前言在制程进入深次微米世代之后,晶片(IC)设计的高复杂度及系统单晶片(SOC)设计方式兴起。

此一趋势使得如何确保IC品质成为今日所有设计从业人员不得不面临之重大课题。

静态时序分析(Static Timing Analysis简称STA)经由完整的分析方式判断IC是否能够在使用者的时序环境下正常工作,对确保IC品质之课题,提供一个不错的解决方案。

然而,对于许多IC设计者而言,STA 是个既熟悉却又陌生的名词。

本文将力求以简单叙述及图例说明的方式,对STA 的基础概念及其在IC设计流程中的应用做详尽的介绍。

什么是STA?STA的简单定义如下:套用特定的时序模型(Timing Model),针对特定电路分析其是否违反设计者给定的时序限制(Timing Constraint)。

以分析的方式区分,可分为Path-Based及Block-Based两种。

先来看看Path-Based这种分析方式。

如图一所示,讯号从A点及B点输入,经由4个逻辑闸组成的电路到达输出Y 点。

套用的Timing Model标示在各逻辑闸上,对于所有输入端到输出端都可以找到相对应的延迟时间。

而使用者给定的Timing Constraint为:1.讯号A到达电路输入端的时间点为2(AT=2,AT为Arrival Time)。

2.讯号B到达电路输入端的时间点为5(AT=5)。

3.讯号必须在时间点10之前到达输出端Y(RT=10,RT为Required Time)。

现在我们针对P1及P2两条路径(Path)来做分析。

P1的起始点为A,讯号到达时间点为2。

经过第1个逻辑闸之后,由于此闸有2单位的延迟时间,所以讯号到达此闸输出的时间点为4(2+2)。

依此类推,讯号经由P1到达输出Y的时间点为7(2+2+3)。

在和上述第三项Timing Constraint比对之后,我们可以得知对P1这个路径而言,时序(Timing)是满足使用者要求的。

FPGA-静态时序分析(STA)

FPGA-静态时序分析(STA)
第14页,共83页。
数据需求时间-setup
数据需求时间=时钟到达时间 – tsu - setup uncertainty
第15页,共83页。
数据需求时间-setup
数据需求时间=时钟到达时间 + th +hold uncertainty
第16页,共83页。
建立slack
建立时间的裕量 建立slack=数据需求时间-数据到达时间
PLL输出时钟反馈到FPGA时钟输入引脚时特别有用;这种 latency可以通过在chip planner中查看到。
第47页,共83页。
第45页,共83页。
时钟约束
PLL两个输入时钟
#create a 10ns clock for clock port clk0 create_clock -period 10.000 -name clk0 [get_ports {clk0}] #create a 20ns clock for clock port clk1 create_clock -period 20.000 -name clk1 [get_ports {clk1}] #automatically create clocks for the PLL output clocks derive_pll_clocks
#Cut paths between clkA and clkB set_clock_groups –exclusive -group {clkA} -group {clkB}
第44页,共83页。
时钟约束
外部复用
# The clk port can be driven at 100MHz (10ns) or# 50MHz (20ns) # clkA is 10ns create_clock -period 10.000 -name clkA [get_ports {clk}]

静态时序分析综述报告以及primetime简介

静态时序分析综述报告以及primetime简介

静态时序分析综述报告——孙声震1.静态时序分析静态时序分析(STA)就是套用特定的时序模型(Timing Model),针对特定电路分析其是否违反设计者给定的时序限制(Timing Constraint)。

1.1 背景仿真技术是ASIC设计过程中应用最多的验证手段,然而,现在的单片集成系统设计正在将仿真时间推向无法容忍的极限。

在最后的门级仿真阶段,针对的是几十乃至几百万门的电路,对仿真器第一位的要求是速度和容量,因此,性能(仿真速度)和容量(能够仿真的设计规模)是验证中的关键因素。

传统上采用逻辑仿真器验证功能时序,即在验证功能的同时验证时序,它以逻辑模拟方式运行,需要输入向量作为激励。

随着规模增大,所需要的向量数量以指数增长,验证所需时间占到整个设计周期的50%,而最大的问题是难以保证足够的覆盖率。

鉴于此,这种方法已经越来越少地用于时序验证,取而代之的是静态时序分析技术。

1.2 分类静态时序分析以分析的方式区分,可分为Path-Based及Block-Based两种。

图1如图1所示,为Path-Based这种分析方式。

信号从A点及B点输入,经过中间的逻辑单元,从Y端输出。

套用的Timing Model标示在各逻辑器件上,对于所有输入端到输出端都可以找到相对应的延迟时间。

而使用者给定的TimingConstraint为:1. 信号A到达电路输入端的时间点为2(AT=2,AT为Arrival Time)。

2. 信号B到达电路输入端的时间点为5(AT=5)。

3. 信号必须在时间点10之前到达输出端Y(RT=10,RT为Required Time)。

针对P1及P2 两条路径(Path)来做分析。

P1的起始点为A,信号到达时间点为2。

经过第1个逻辑器件之后,由于有2单位的延迟时间,所以信号到达这个器件输出的时间点为4(2+2)。

依此类推,信号经由P1到达输出Y的时间点为7(2+2+3)。

在和上述第三项Timing Constraint比对之后,我们可以得知对P1这个路径而言,时序(Timing)是满足使用者要求的。

静态时序分析

静态时序分析

静态时序分析1、STA过程中定义的时序路径有四种,如图1所示图1路径1:基本输入到内部时序单元的数据输入端;路径2:内部时序单元的时钟输入端到下一个内部时序单元的数据输入端;路径3:内部时序单元的数据输入端到基本输出端口;路径4:基本输入端到基本输出端口。

静态时序分析的目的是保证设计中所有的以上路径,满足内部时序单元对建立时间和保持时间的要求。

即无论起点是什么,信号都可以被及时地传递到该路径的终点,并且在电路正常工作所必需的时间段内保持恒定,也就是时序收敛。

2、时序分析起点(launch edge):第一级寄存器数据变化的时钟边沿,也是静态时序分析的起点。

3、建立时间(Tsu):是指在时钟沿到来之前数据从不稳定到稳定所需的时间,如果建立的时间不满足要求那么数据将不能在这个时钟上升沿被稳定的打入触发器。

如图2所示:图2 建立时间示意图4、保持时间(Th):是指数据稳定后保持的时间,如果保持时间不满足要求那么数据同样也不能被稳定的打入触发器。

保持时间示意图如图3所示:图35、时钟偏斜(clock skew):是指一个时钟源到达两个不同寄存器时钟端的时间偏移,如图4所示:图4时钟偏斜计算公式如下:Tskew = Tclk2 - Tclk16、数据到达时间(Data Arrival Time):输入数据在有效时钟沿后到达所需要的时间。

主要分为三部分:时钟到达寄存器时间(Tclk1),寄存器输出延时(Tco)和数据传输延时(Tdata),如图5所示:图5数据到达时间计算公式如下:Data Arrival Time = Launch edge + Tclk1 +Tco + Tdata7、时钟到达时间(Clock Arrival Time):时钟从latch边沿到达锁存寄存器时钟输入端所消耗的时间为时钟到达时间,如图6所示:图6时钟到达时间计算公式如下:Clock Arrival Time = Lacth edge + Tclk28、数据需求时间(Data Required Time):在时钟锁存的建立时间和保持时间之间数据必须稳定,从源时钟起点达到这种稳定状态需要的时间即为数据需求时间。

静态时序分析课件

静态时序分析课件

案例三:时钟偏差与时钟抖动问题解决
总结词
详细描述
案例四:时序违规问题解决
要点一
总结词
要点二
详细描述
时序违规问题是指在设计中的时序信号不能满足时序约束 条件,可能导致数据传输错误或系统不稳定。
在静态时序分析中,需要仔细检查设计的时序信号是否满 足约束条件,并采取相应的措施来解决时序违规问题。可 以采用优化设计、调整时序约束条件或使用静态时序分析 工具等方法来解决时序违规问题。
时钟源与负载不匹配问题
总结词
详细描述
时钟偏差与时钟抖动问题
总结词
时钟偏差与时钟抖动问题是指时钟信号 在传输过程中出现的偏差和抖动现象, 可能导致数据的不稳定和时序违规。
VS
详细描述
时钟信号在传输过程中会受到各种因素的 影响,如线路长度、连接器、时钟源的抖 动等,导致时钟信号的偏差和抖动。这种 偏差和抖动可能导致数据的不稳定和时序 违规。为了解决这个问题,需要减小传输 过程中的偏差和抖动,并加强时钟网络的 同步和稳定性。
THANKS
感谢观看
时钟偏差是指时钟信号到达不同寄存器的时间偏差,通常由时钟源、时钟网络和寄 存器本身引起。
时钟抖动和偏差是影响数字电路时序分析的重要因素,需要进行有效的管理和优化。
03
静态时序分析方法
路径延迟分析
路径延迟分析是静态时序分析中的重 要步骤,它通过计算信号在电路中传 输的延迟时间,来确定信号到达时间 是否满足时序要求。
时序违规问题
总结词
详细描述
06
静态时序分析案例研究
案例一:时钟域交叉问题解决
总结词
详细描述
案例二:时钟源与负载不匹配问题解决
总结词
时钟源与负载不匹配问题是指时钟源的频率与负载的要求不匹配,可能导致数据 传输错误或资源浪费。

静态时序分析

静态时序分析

静态时序分析电子科技大学詹璨铭什么是静态时序分析⏹静态时序分析STA(static timing analysis)⏹定义⏹与动态时序分析的差异怎样做静态时序分析⏹使用工具primetime (简称pt)与DC ⏹两者的兼容性⏹为什么使用primetime?Primetime与DC的兼容性⏹使用同样的工艺库和设计文件⏹许多指令一样⏹相同的算法,很多结果也一样⏹从一个synthesizable subcircuit 中,pt能捕获一个时序环境,并写成一系列的dc指令,在dc中用其为这个subcircuit定义时间约束和时序优化--值得关注⏹为dc写的dcsh格式的脚本可以翻译成在pt上用的格式。

在pt中定义为抄本(transcript)格式⏹这两个都支持用SDC(synopsys design constraints)格式指定设计规则,包括时间面积约束。

为什么用pt⏹更快效率更高⏹占用更少的内存⏹具有高级的芯片级的分析能力和高级的建模能力。

STA中的对象⏹Design -完整的设计⏹Cell(instance)-设计中使用的一个元件⏹Net -金属连线⏹Port -design 的I/O口⏹Pin -cell 的I/O口⏹Reference -是元件的参考的源定义⏹Clock -创建的时钟信号时序弧(timing arc)⏹定义:如果把电路看作是一张很大的拓扑图,那么图中的结点就是电路中的引脚(pin)。

结点与结点之间的部分,我们称作是时序弧(timing arc)。

他定义了任意两个结点之间的时序关系。

⏹最直观基本的理解:cell delay与net delay。

这两个也是计算下面时序弧的基础。

每段时序弧的延时就是把这两个值不断相加时序弧分类一:时序的延时⏹组合时序弧(combinational timing arc)⏹边沿时序弧(edge timing arc)⏹重置和清除时序弧(preset and clear timing arc)⏹三态使能/无效时序弧(three state enable/disable timing arc)时序弧分类二:时序约束⏹建立时序弧(setup timing arc)⏹保持时序弧(hold timing arc)⏹恢复时序弧(recovery timing arc)⏹清除时序弧(removal timing arc)⏹宽度时序弧(width timing arc)组合时序弧(combinationaltiming arc)⏹负函数(negative unate)⏹正函数(positive unate)⏹非函数(non-unate)calculation)--cell delay⏹是从一个逻辑门的输入到输出的延迟量⏹通过工艺库(technology library)来查找的⏹这是个2维表,查找项是输入的过渡时间(input transition),输出的电容负载(output load capacitance)没有对应的值,做一个线性的推导,计算出相应的值。

20 静态时序分析

20 静态时序分析
电子与通信工程系
11
I/O Analysis(共同时钟同步)
• Analyzing I/O performance in a synchronous design uses the same slack equations
– Must include external device & PCB timing parameters
静态时序分析是基于路径的
PATH4
• 路径1:模块输入端口
模块
(PI)到内部时序单元的
数据输入端。
• 路径2:内部时序单元的
PI
PATH1
FF1 DQ
PATH2
PATH3 FF2
DQ
时钟输入端到下一个内部 PO 时序单元的数据输入端。 • 路径3:内部时序单元的
CK
CK
时钟输入端到模块输出端
CLK
口(PO)。
Tcycle – Tsu – Tco- Tdata >0 8 最大频率为 Tcycle的倒数
Tcycle > Tsu +Tco+Tdata
电子与通信工程系
Data Required Time - Hold
The minimum time required for the data to get captured into the destination
Launch Edge
CLK REG1.CLK
REG1.Q
REG2.D
REG2.CLK
7
Tclk1
Tclk1
REG1
PRE
DQ
CLR
TCO
Comb. Logic
Tdata
REG2

静态时序分析

静态时序分析

静态时序分析(Static Timing Analysis)技术是一种穷尽分析方法,用以衡量电路性能。

它提取整个电路的所有时序路径,通过计算信号沿在路径上的延迟找出违背时序约束的错误,主要是检查建立时间和保持时间是否满足要求,而它们又分别通过对最大路径延迟和最小路径延迟的分析得到。

静态时序分析的方法不依赖于激励,且可以穷尽所有路径,运行速度很快,占用内存很少。

它完全克服了动态时序验证的缺陷,适合进行超大规模的片上系统电路的验证,可以节省多达20%的设计时间。

PT是Synopsys的sign-off quality的STA工具,是一个单点的全芯片、门级静态时序分析器。

PrimeTime工作在设计的门级层次,并且和Synopsys其它工具整合得很紧密。

基本特点和功能:建立和保持时间的检查(setup and hold checks)时钟脉冲宽度的检查门控时钟检查(clock-gating checks)recovery and removal checksunclocked registers未约束的时序端点(unconstrained timing endpoints)multiple clocked registers组合反馈回路(combinational feedback loops)基于设计规则的检查,包括对最大电容、最大传输时间、最大扇出的检查等。

设置设计环境设置查找路径和链接路径The search_path variable specifies a list of directory pathsthatPrimeTime uses to find the designs, libraries, and other files.The link_path variable specifies a list of libraries that PrimeTime uses tolink designs读入设计(和库文件)链接顶层设计对必要的操作条件进行设置,这里包括了线上负载的模型、端口负载、驱动、以及转换时间等指定时序约束(timing constraints)定义时钟周期、波形、不确定度(uncertainty)、延时(latency)指明输入输出端口的延时等设置时序例外(timing exceptions)设置多周期路径(multicycle paths)设置虚假路径(false paths)定义最大最小延时(max | min delay)无效的arcs(disable timing)进行时序分析:在作好以上准备工作的基础上,可以对电路进行静态时序分析,生成constraint reports 和path timing reports。

静态时序分析综述报告以及primetime简介

静态时序分析综述报告以及primetime简介

静态时序分析综述报告——孙声震1.静态时序分析静态时序分析(STA)就是套用特定的时序模型(Timing Model),针对特定电路分析其是否违反设计者给定的时序限制(Timing Constraint)。

1.1 背景仿真技术是ASIC设计过程中应用最多的验证手段,然而,现在的单片集成系统设计正在将仿真时间推向无法容忍的极限。

在最后的门级仿真阶段,针对的是几十乃至几百万门的电路,对仿真器第一位的要求是速度和容量,因此,性能(仿真速度)和容量(能够仿真的设计规模)是验证中的关键因素。

传统上采用逻辑仿真器验证功能时序,即在验证功能的同时验证时序,它以逻辑模拟方式运行,需要输入向量作为激励。

随着规模增大,所需要的向量数量以指数增长,验证所需时间占到整个设计周期的50%,而最大的问题是难以保证足够的覆盖率。

鉴于此,这种方法已经越来越少地用于时序验证,取而代之的是静态时序分析技术。

1.2 分类静态时序分析以分析的方式区分,可分为Path-Based及Block-Based两种。

图1如图1所示,为Path-Based这种分析方式。

信号从A点及B点输入,经过中间的逻辑单元,从Y端输出。

套用的Timing Model标示在各逻辑器件上,对于所有输入端到输出端都可以找到相对应的延迟时间。

而使用者给定的TimingConstraint为:1. 信号A到达电路输入端的时间点为2(AT=2,AT为Arrival Time)。

2. 信号B到达电路输入端的时间点为5(AT=5)。

3. 信号必须在时间点10之前到达输出端Y(RT=10,RT为Required Time)。

针对P1及P2 两条路径(Path)来做分析。

P1的起始点为A,信号到达时间点为2。

经过第1个逻辑器件之后,由于有2单位的延迟时间,所以信号到达这个器件输出的时间点为4(2+2)。

依此类推,信号经由P1到达输出Y的时间点为7(2+2+3)。

在和上述第三项Timing Constraint比对之后,我们可以得知对P1这个路径而言,时序(Timing)是满足使用者要求的。

PT静态时序分析概念汇总

PT静态时序分析概念汇总
Static Timing Analysis
Agenda
PRE-REQUISTES: Knowledge of Digital Design
TOPICS COVERED : - Basic STA concepts - Basic Primetime Commands, Interpretaion of
Insertion Delay – delay from clock source to the clock endpoint Skew - Difference in arrival time at clock endpoints
FF1
clk
FF2 clock skew = clock insertion delay of FF1 - clock insertion delay of FF2
– Predict the interconnect capacitance as a function of net fan-out and block size.
Net fanout Net fanout
• Wire Load Table
Net Load
1
0.015
2
0.030
3
0.045
4
0.060
extracted from physical design tools. OR
• SDF : Standard Delay Format file containing back-annotated delays.
• Models (lib/db): The delay model of every cell in the library
– All paths are assumed critical – Process variation across die can be modeled – constraints and reports are concise and easy to interpret

静态时序分析

静态时序分析

§1.1 What is STA ?一般来说,要分析或检验一个电路设计的时序方面的特征有两种主要手段:动态时序仿真(Dynamic Timing Simulation)和静态时序分析(Static Timing Analysis)。

§1.2When to do STA ?§1.3PrimeTime Inputs and Outputs ?§1.4 Three main steps for STA⏹将设计打散成路径的集合(design > path group > path)⏹对于集合中的每条路径分别计算路径延时长度⏹检查所有路径是否满足约束1.Step 1 – Timing Path(Path Group:路径根据末端触发器的时钟不同分为不同的Clock Path Group;不为时钟所约束的路径为default Path Group对于Clock Gating Setup/Hold check的路径为clock_gating_default Path Group) 2.Step 2– Cell Delay Calculation3.Step 3– Constraints1)时钟约束DC中对路径的时序slack进行计算,完全基于对clock的约束来模拟真实布线之后的clock network.所以需要对clock 的source_latency、network_latency、clock_uncertainty、transition_time都进行设置并set_ideal_network来禁止DC由于fanout的问题修改时钟网络。

然而PT在进行时序分析的时候采用的是布局布线之后的设计,可以从SDF文件中读入时钟树信息,可以直接set_propagated_clock来计算时钟路径上的latency.2)Interface Paths的约束Set_input_delay 0.60 –clock Clk [get_ports A]Set_output_delay 0.40 –clock Clk [get_ports M]3)工作条件的约束诸如design的输入信号transition、输出负载、线载模型、PVT情况。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
jitter=T2-T1
17
STA的过程
STA分三步走: 1、将设计打散成一个一个的timing path 2、计算每条path的延迟 3、检验延迟是否满足设计约束的要求。
18
时序分析基本概念
时序路径 ①从输入端口到触发器的数据D端 ②从触发器的时钟clk端到触发器的数据D端 ③从触发器的时钟clk端到输出端口 ④从输入端口到输出端口
4
时序分析概述
与时序相关的流程
Design Entry Synthesis Timing
动态时序仿真 静态时序分析
形式验证
Place Timing Route Timing
5
动态时序仿真与静态时序分析
动态仿真是时序针对给定的仿真输入信号波形,模拟设计 在器件实际工作时的功能和延时情况,给出相应的仿真输 出信号波形。它主要用于验证设计在器件实际延时情况下 的逻辑功能。由动态时序仿真报告无法得到设计的各项时 序性能指标,如最高时钟频率等。
静态时序分析
概念+市场研究
结构说明和RTL编码 RTL模拟
逻辑综合、优化、扫描插入
转换时钟树到DC
形式验证 (扫描插入的网表 与CT插入的网表)
形式验证(RTL和门级)
布局后STA
布局前STA 否
时序正确 是 布局、CT插入和全局布线
结束
时序正确 否 是 详细布线
布线后STA
时序正确 否 是
2
1.结构及电学特性规范 2.HDL中的RTL编码 3.为包含存储单元的设计插入DFT memory BIST 4.为验证设计功能,进行详尽的动态仿真 5.设计环境设置,包括将使用的工艺库和其他环境属性 6.使用DC对具有扫描插入(和可选JTAG)的设计进行约束和综合设计 7.使用DC的内建静态时序分析机进行模块级的静态时序分析 8.设计的形式验证,使用Formality将RTL和综合后的网表进行对比 9.使用PT进行整个设计布局前的静态时序分析 10.对布局工具进行时序约束前的前标注 11.具有时序驱动单元布局、时钟树插入和全局布线的初始布局划分 12.将时钟树转换到驻留在DC中的原始设计
tMET—setting time,亚稳态到稳态的时间,与工艺无关
14
最小周期T
T=tCO+tDELAY+tSU
15
时钟偏斜(clock skew)
时钟偏斜指的是同一个时钟信号到达两个不同寄存器之间 的时间差值
时钟偏斜永远存在,到一定程度就会严重影响电路的时序
16
时钟抖动(jitter)
所谓抖动,就是指两个时钟周期之间存在的差值,这个误 差是在时钟发生器内部产生的,和晶振或者PLL 内部电路 有关,布线对其没有影响
7
STA的作用
确定芯片最高工作频率 通过时序分析可以控制工程的综合、映射、布局布线等环 节,减少延迟,从而尽可能提高工作频率
检查时序约束是否满足 可以通过时序分析来查看目标模块是否满足约束,如不满 足,可以定位到不满足约束的部分,并给出具体原因,进 一步修改程序直至满足时序要求
分析时钟质量 时钟存在抖动、偏移、占空比失真等不可避免的缺陷。通 过时序分析可以验证其对目标模块的影响
静态时序分析则是通过分析每个时序路径的延时,计算出 设计的各项时序性能指标,如最高时钟频率、建立保持时 间等,发现时序违规。它仅仅聚焦于时序性能的分析,并 不涉及设计的逻辑功能,逻辑功能验证仍需通过仿真或其 他手段(如形式验证等)进行。静态时序分析是最常用的 分析、调试时序性能的方法和工具。
6
静态时序分析-Static Timing Analysis
8
STA的过程
STA分三步走: 1、将设计打散成一个一个的timing path 2、计算每条path的延迟 3、检验延迟是否满足设计约束的要求。
9
时序分析基本概念
建立时间(setup time) 保持时间(hold time ) 时钟到输出延迟(clock to output time) 时钟偏斜(clock skew) 时钟抖动(jitter)
19
时序分析常用路径
时钟到建立 clock to setup path 时钟到管脚 clock to pad path 结束于时钟引脚 paths ending at clock pin of flip-flops 管脚到管脚 pad to pad 管脚到建立 pad to setup
STA是一种验证方法 STA的前提是同步逻辑设计 STA是使用工具通过路径计算延迟的综合,并比较相对预
定义时钟的延迟 STA仅关注时序间的相对关系而不是评估逻辑功能 无需用向量去激活某个路径,而是对所有的时序路径进行
错误分析,能处理百万门级的设计,分析速度比时序仿真 工具快几个数量级,在同步逻辑情况下,可以达到100% 的时序路径覆盖 STA的目的是找出隐藏的时序问题,根据时序分析结果优 化逻辑或约束条件,使设计达到时序闭合(timing closure)
11
保持时间tHห้องสมุดไป่ตู้hold time )
保持时间是指触发器的时钟信号上升沿到来以后,数据稳 定不变的时间。如果hold time不够,数据同样不能被打入 触发器 。
12
时钟到输出延迟tCO(clock to output time)
从时钟信号有效沿到数据有效的时间间隔
13
不满足建立/保持时间,可能出现亚稳态
10
建立时间tSU(setup time)
触发器的时钟信号上升沿到来以前,数据稳定不变的时间。 输入信号应提前时钟上升沿 (假设上升沿有效)T时间到 达芯片,这个T就是建立时间Setup time. 如不满足setup time,这个数据就不能被这一时钟打入触发器,只有在下一 个时钟上升沿,数据才能被打入触发器。
3
13.在DC中进行设计的布局优化 14.使用Formality在综合网表和时钟树插入的网表之间进行进行形式验证 15.在全局布线后(11步) 16.从全局布线得到的估计时间数据反标注到PT 17.使用全局布线后提取的估计延时数据在PT中进行静态时序分析 18.设计的详细布局 19.提取来自详细布局设计的实际时间延迟 20.实际提取时间数据反标注到PT 21.使用PT进行布局后的静态时序分析 22.布局后的门级功能仿真(如果需要的话) 23.在LVS和DRC验证之后交货
相关文档
最新文档