常用时序分析SDC命令参考(一)1.Definedesignenvironment1.1.Set_operating_conditions1.2.Set_wire_load_model1.3.Set_driving_cell1.4.Set_load1.5.Set_fanout_load1.6.Set_min_library2.Setdesignconstraints2.1.Designruleconstraints2.1.1.Set_max_transition2.1.2.Set_max_fanout2.1.3.Set_max_capacitance2.2.Designoptimizationconstraints2.2.1.Create_clock2.2.2.create_generated_clock2.2.3.Set_clock_latency2.2.4.Set_propagated_clock2.2.5.Set_clock_uncertainty2.2.6.Set_input_delay2.2.7.Set_output_delay2.2.8.Set_max_area3.Othercommands3.1.set_clock_groups3.2.set_false_path3.3.set_case_analysis3.4.set_max_delay1.Donotexistintimingfixsdcfile:1.1.Set_max_area1.2.set_operation_conditions1.3.set_wire_load_model1.4.set_ideal_*2.Mustbeplacedintimingfixsdcfile:2.1.Set_clock_uncertainty,2.2.set_max_transition2.3.set_propagated_clockset_operating_conditions定义当前设计的控制条件语法:Intset_operating_conditions[-analysis_typebc_wc|on_chip_variation][-minmin_condition][-maxmax_condition][-min_librarymin_lib][-max_librarymax_lib][-min_physmin_proc][-max_physmax_proc][-librarylib][-object_listobjects][condition]数据类型:min_condition列表max_conditon列表objects列表condition列表参数:-analysis_typebc_wc|on_chip_variation设定分析的类型。两个选项只能选择其中一个。使用bc_wc或on_chip_variation切换设计到min_max模式。bc_wc值设定最小(快)最大(慢)控制条件是两个极端的控制条件。在bc_wc分析,用最大的控制条件分析SETUP,用最小控制条件分析HOLD。on_chip_variation分析分别有最小和最大控制条件表示片上最大偏差的上下限。对所有最大延迟的路径运用最大控制条件,对所有最小延迟的路径运用最小控制条件。-minmin_condition指定用于最小延迟分析的控制条件。如果没有指定,工具默认使用最大控制条件。-min必须与-max同时使用。-maxmax_condition指定用于最大延迟分析的控制条件。-min_librarymin_lib指定用于最短延迟分析,并包含有控制条件定义的库。可以是一个库的名称或集合。如果是集合,工具将选择集合中首个满足条件的库。-max_librarymax_lib指定用于最大延迟分析,并包含控制条件定义的库。可以是一个库的名称或集合。如果是集合,工具将选择集合中首个满足条件的库。-min_physmin_proc指定工艺资源名称搜索相匹配的电阻和电容值,用于最小延迟分析。该选项必须与-max_phys一起使用。-max_physmax_proc指定工艺资源名称搜索相匹配的电阻和电容值,用于最大延迟分析。该选项必须与-min_phys一起使用。-librarylib指定包含控制条件定义的库,用于最小和最大延迟分析。可以是一个库的名称或集合。如果是集合,工具将选择集合中首个包含控制条件的库。-object_listobjects指定要设置控制条件的单元或端口。如果没有指定,默认为整个设计。该选项支持子单元或子模块。Condition指定有环境特征定义的条件,在最小最大延迟分析时使用。描述:该命令设定控制条件或环境特征,据此对当前设计进行时序或布局的优化。控制条件必须定义在.lib或link_library包含的任一库中。当前设计的local_link_library会被加到link_library的开头,查找时优先于link_library。库搜索顺序依次为:1.lib2.local_link_library3.link_library如果没有为设计设定控制条件,compile命令寻找链接库中首个库的控制条件作为初始值。如果库中没有控制条件定义,控制条件将不会被使用。使用-object_list选项将取代来自于设计或更高层次设计上的设定。使用report_design命令可以查看当前设计控制条件设定和链接库信息。使用report_lib命令可以查看指定库控制条件设定。多条件多模式支持:该命令仅使用当前方案的信息范例:operating_conditions(“BCCOM”){process:0.6;temperature:20;voltage:5.25;tree_type:“best_case_tree”;}控制条件的名称是BCCOM,参数定义为:process浮点数代表半导体工艺特征temperature浮点数代表环境设定的温度voltage浮点数定义环境设定中电压范围的上限,下限为0.0tree_type环境互连模型。compile命令使用互连模式选择互连延迟的计算公式。三个有效模型:best_case_tree,假设连线延迟为0worst_case_tree,使用集中(总)RC模型balanced_tree,所有负载均匀分摊线电阻当工艺因素,控制温度和控制电压与标称值有偏差,compile使用线性模型补偿偏差的带来的影响,模拟为单元延迟,输入负载,输出驱动等值。包含有控制条件定义的库中有标称值设计的定义。以下例子设定控制条件为WCIND,如果link_library是my_lib.db,并且设计没有local_link_library设定。my_lib.db的库为my_lib_core。set_operating_conditionsWCIND控制条件’WCIND’在库”my_lib_core”中查找。使用other_lib_core.db库中BCIND值用于最小延迟分析,WCIND用于最大延迟分析。other_lib_core.db的库名称为other_lib_coreset_operating_conditions–minBCIND–maxWCIND–libraryother_lib_core删除当前控制条件设定set_operating_conditions更多:compile,report_lib,reset_design,set_local_link_library,link_libraryset_wire_load_model为设计、端口、当前设计中层次化单元设定wire_load_attach_name属性,选择一个连线模型用于连线电容的计算。语法:statusset_wire_load_model-namemodel_name[-librarylib][-min][-max][object_list]数据类型:model_name字符object_list集合参数:-namemodel_name指定连线负载模型的名称。该模型必须是已定义的。这个选项必须使用。-librarylib指定包含模型的库。可以是一个库的名称或集合。如果是集合,工具将选择集合中首个满足条件的库。-min指定仅用于最小延迟分析的模型。你不能用-min选项设定一个不同的模型或最小模块尺寸。因为对于这些参数,无论最大最小延迟分析都使用相同的值。-max指定仅用于最大延迟分析的模型。任何用于最小延迟分析的模型集都没有影响。object_list指定将被设定连线负载模型的端口、设计或单元的列表。连线负载模型默认设定给当前设计。描述:该命令设置wire_load_attach_name属性给特定的端口,设计或对象列表中单元或当前设计,用于连线电容的计算。如果没有任何选项,模型将作用于顶层设计。-name选项是必须的。如果指定的是一个设计,将作用于整个设计中的所有连线。如果指定的是一个单元,存在在当前设计中。设定给单元的连线模型会取代设计赋值给单元的连线模型。你可以使用该命令设定端口外部连线负载模型,并且不受设计连线模型的影响。如果没有为设计指定连线模型,首个满足条件的连线模型将默认设定给设计。当auto_wire_load_selection属性被打开,如果库有wire_load_selection表,当前设计的单元部分将自动搜索与wire_load_selection表相匹配的连线模型。如果库有不只一个表,将设置default_wire_selecting_group属性将其中一个表设定为初始表。你也可以通过set_wrie_load_selection_group进行手工设定。如果你没有使用set_wire_load_min_block_size设定模块大小,当合适的连线被选用,设计单元面积被假设为至少与这个值一样大。如果没有wire_load_selection表,库中的default_wire_load会被使用。如果上述情况都没有,将没有连线会被使用。当auto_wire_load_selection属性被设为false,并且没有指定model_name,也同样没有连线模型会被使用。report_design命令显示当前设计的连线模型和模式,以及相关联的库。report_wire_load命令可提供更多连线模型信息。report_lib命令显示指定库中定义的连线模型及选择表。你可以使用report_port显示设计端口连线模型。你可以对当前设计中的层次化单元设定特定的连线模型,引用层次化单元的其他设计,其连线模型不会被改变。如果你对子设计设定连线模型,你需要确保顶层设计连线模型不是top,否则下层模块的连线模型的选择会被忽略。如果你为设计指定连线模式,工具在compile时,会搜索首个满足条件的连线模式作为初始设定。如果初始设定没有被指定,会假设top作为初始值。你可以使用set_wire_load_mode重新指定。对于set_wire_load_mode属性的top,enclosed和segmented值的定义,可参考set_wire_load_mode命令。连线电阻及面积也会遵照规则考虑进连线电容的计算。使用-min选项,你可以使用set_wire_load_model指定一个不同的连线模型用于最小延迟分析。除非明确的指定,最大最小延迟分析使用相同的连线模型。你可以设定不同的连线模型指定给设计或端口。你不可以指定不同的连线模型或模块尺寸仅用于最小延迟分析。对于这种情况,最大最小分析使用相同的值。布线面积总是使用与最大延迟分析的相同连线负载来计算。连线负载模型包含compile估计连线延迟所需要的所有信息。下面是一个连线负载模型的例子。wire_load(“90x90”){resistance:0;capacitance:1;area:0;slope:1.64;fanout_length(1,1.9);fanout_length(2,2.8);fanout_length(3,