1.setAnalysisMode功能
该命令为timholdeing analysis设置global analysis modes,工具会对所有的timing analysis使用该modes,除了用户再reporting command中指定的mode。当使用setAnalysisMode命令,工具默认会做如下设置:
1)当建立timing graph时设置propagated的参数值,这些参数值从时序约束文件或者网表中读取。
2)获取module level的由<set_input_delay set_output_delay>设定的I/O的时序约束用于timing analysis和timing optimization.
3)reports the end points as many times as the number clocks that control that end points
报告end points的次数与clocks 控制end points的数量一样多
2.setAnalysisMode的option选项
-analysisMode {sigle | bcwc | onChipVariation}
设置timing analysis的类型。
default:当只读入一个library,默认会使用sigle mode,当读入两个libraries并未指定type,会默认使用bcwc mode 。基于operation condition来缩放delay值,在两个极端的操作条件下检查设计,在进行setup检查时使用最大的delay值,在进行hold check时使用最小的delay值。
-aocv {true | false}
设置on-chip variation的AOCV分析模式
-asyncChecks{async | noAsync | astncOnly}
异步时序分析的违例报告,包括recovery 和removal,以及定义为preset和clear的一些pin在liberty文件中。1)进行检查在liberty文件中定义为preset和clear的一些pin。2)忽略两种类型的时序弧3)只进行removal和recovery的检查。
default: async
-caseAnalysis {true | false}
决定是否将来自网表和约束文件的常量值应用在分析中。设置false会阻止工具应用时序约束文件传递参数值,然而通过网表和timing 库的常量值还是会被应用和传递。
-checkType {setup | hold}
选择检查setup/hold violations
default:setup
-clkNetsMarking {beforeConstProp | afterConstProp}
该参数在CTE timing analysis mode 下是无效的。
在常量值传递前/后标记clock nets
default: beforeConstProp
-clkSrcpath {true | false}
报告从clk source 到时序检查的data pins的组合逻辑路径。如果设置为false,部分时钟net视为ideal,当计算delay和slews时,工具将数据路径上的clock nets部分视为ideal。在所有的preCTS的阶段,optDesign和timeDesign工具默认使用-clkSrcpath false组合使用-clockPropgation forceIdeal使所有的clock nets都作为ideal nets来计算delay和slew;在postCTS阶段,工具默认使用-clkSrcpath true计算delay和slews。
-clockGatingCheck {true | false}
报告门控时钟的checks
defult: true
-clockPropagation {sdcControl | forcedIdeal | autoDetectClockrTree}
指定clock end points既不是ideal又不是propagation时的定义类型。
default:sdcControl
1)在分析时序违例时考虑时钟树 并使能prpogating clocks 来报告clock latency,用户需要设置set_propagated_clock 约束来传播clock。默认情况下,CTS会让timer使所有的clock roots propagated,在这种情况下不需要设置set_propagated_clock约束。
2)不报告考虑时钟树的timing violations
3)自动检测时钟树(淘汰了,自动归为sdcControl)
-cppr {none | both | setup | hold}
悲观路径去除,悲观量是由于在OCV模式下,部分相同path计算出不同的delay,悲观量在single/bcwc/OCV模式下都有影响。
default : none
none:不移除悲观量
both:在setup/hold模式下都移除悲观量
setup/hold :只在setup/hold模式下移除悲观量。
-honorActivLogicView {true | false}
该命令在preCTS阶段有效,只对partitions的接口间的nets进行时序分析,而非整个chip
default:false
-honorClockDomain{true| false}
是否使用clock domain 或者path groups做时序优化timing optimization。
当设置为true,optDesign使用标准的或用户执行的clock domain进行时序优化,相关clock domain命令:setClockDomains | clearClockDomains | reportClockDomains。
当设置为false,timing optimization会使用path group进行时序优化,clock domain相关的命令都被禁用,path group相关的命令:group_path | reset_path_group | createBasicPathGroups | setPathGroupsOptions | reportPathGroupOptions,如果没有创建path groups,工具会使用basic group。现在该option失效了。
default :false
-propSlew {true | false}
控制计算early path delay是否将slew从driver到reciever视为存在互连寄生产生衰减,可以在early path delay计算时设置false关掉slew衰减,此时从driver到receiver的slew是相同的。early path delay影响bcwc mode的hold paths,影响OCV的setup 分析的capture paths,和OCV的hold 分析的lauch paths
deault:true
-reset
-sequencialConstProp {true | false}
通过sequential elements传递常量值,如果设置false,变量值到达时序元件就会终止。
-skew {true | false}
fasle将时钟skew视为0,default :true
-skew true和 -clockPropagation sdcControl组合使用:
如果时序约束文件中set_propagation_clock指定了,clock latency会从网表中进行计算(propagated mode);如果时序约束文件中set_clock_latency指定,clock latency会使用时序约束文件中指定的值。其他的为ideal mode,不存在clock latency.
-socv {true | false}
使能SOCV分析
default :false
-timeBorrowing {true | false}
允许time borrow
default : true
-timingEngine {statistical | static | pathBasedSSTA}
选择时序分析的类型,默认 static静态时序分析 该option失效了
-timingSelfLoopNoSkew {true | false}
消除相同reg由于clock uncertainty设置的clock skew,相同路径下的clock uncertainty是相同的 ,因此同一reg的相同路径部分是不存在skew的,在建立timing graph之前使用该变量。default:false
-usefulSkew {true | false}
在时序分析是考虑latency file ,latency file在执行skewClock 命令时产生,default:false
-useOutputPinCap {true | false}
当计算delay时包含output pin capacitance。当设置false 工具只排除driver 的pin capacitance。