相关阅读SDC命令详解https://blog.csdn.net/weixin_45791458/category_12931432.html?spm1001.2014.3001.5482目录指定所有设计指定不包含反标延迟检查命令指定不包含反标延迟命令指定不包含时钟门控信息指定完整库名指定不换行指定包含被断开的组合环指定文件名Multicorner-Multimode支持注意事项简单使用write_script命令用于将设计中的部分属性设置命令相对于设计读取时输出为脚本文件其实它并不是一个SDC命令归为此类只是为了方便管理这包括所有的SDC命令实际上所有的SDC命令都会设置相应属性例如set_ideal_network命令设置了ideal_network_source属性但不包括用户自定义属性。对于那些不能直接用特定命令设置的属性将统一使用set_attribute命令设置。本文针对Design Compiler但该命令同样存在于PrimeTime、IC Compiler等工具中它们大致相同略有差别。write_script命令的BNF范式有关BNF范式可以参考以往文章为write_script [-hierarchy] [-no_annotated_check] [-no_annotated_delay] [-no_cg] [-full_path_lib_names] [-nosplit] [-include loop_breaking] [-output file_name] //注该命令的选项和参数顺序任意指定所有设计-hierarchy选项指定为所有设计生成属性设置命令如果不使用该选项只会为当前设计生成属性设置命令。指定不包含反标延迟检查命令-no_annotated_check选项指定脚本文件中不包含set_annotated_check命令。对于含有大量反标信息的设计使用此选项可以避免生成过大的脚本文件。指定不包含反标延迟命令-set_annotated_delay选项指定脚本文件中不包含set_annotated_delay命令。对于含有大量反标信息的设计使用此选项可以避免生成过大的脚本文件。指定不包含时钟门控信息-no_cg选项指定脚本文件中不包含Power Compiler中有关时钟门控的属性设置通过set_attribute命令设置这些属性有助于门控时钟单元的识别。指定完整库名-full_path_lib_names选项指定逻辑库名以基本名作为前缀的方式写出。指定不换行-nosplit选项指定当字段长度超出列宽时不进行换行适合用diff比较或后处理。指定包含被断开的组合环-include loop_breaking选项指定为那些被断开的组合环输出set_disable_timing命令。指定文件名-output选项指定脚本文件的名称如果不使用该选项则默认只输出至标准输出。Multicorner-Multimode支持该命令仅对当前场景生效换句话说只能在将当前场景中的属性设置命令输出为脚本文件。关于场景的更多介绍可以参考下面的博客。Design Compiler多工艺角和多工作模式(Multicorner-Multimode, MCMM)https://blog.csdn.net/weixin_45791458/article/details/149578771?ops_request_misc%257B%2522request%255Fid%2522%253A%2522e3267dcc7cc26380435f53994dc8b9b8%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257Drequest_ide3267dcc7cc26380435f53994dc8b9b8biz_id0utm_mediumdistribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-149578771-null-null.nonecaseutm_termMCMMspm1018.2226.3001.4450注意事项1、某些属性比如隐式size_only属性或隐式dont_touch属性不支持输出某些命令由于未设置属性也不支持输出例如set_clock_gating_style、set_min_library等。2、对于Design Compiler而言输出的设置命令可能与执行时不完全一样这是因为综合过程中Design Compiler可能对设计进行解组、唯一化、重命名等优化操作严格意义说此时的设置命令对应的是综合后设计的属性而不是综合前的并且设置命令应该是参数展开的形式。简单使用假设执行了以下脚本文件但不进行综合。create_clock -period 10 [get_ports clk] set_clock_latency -source 0.5 [get_clocks clk] set_dont_touch [get_nets clk] set_attribute [get_nets in1] dont_touch true set_load [expr 0.50.5] out // 输出时是以展开的形式 set_input_delay 0.5 -clock [get_clocks clk] [get_ports in*] // 输出时是以展开的形式使用write_script命令后输出的内容如下所示。dcnxt_shell write_script Warning: Design top_module has 1 unresolved references. For more detailed information, use the link command. (UID-341) ################################################################### # Created by write_script -format dctcl on Wed Jul 30 18:50:23 2025 ################################################################### # Set the current_design # current_design top_module remove_wire_load_model set_dont_touch [get_nets in1] // 尽管使用set_attribute命令设置但输出set_dont_touch命令 set_dont_touch [get_nets clk] set_load -pin_load 1 [get_ports out] create_clock [get_ports clk] -period 10 -waveform {0 5} set_clock_latency -source 0.5 [get_clocks clk] set_input_delay -clock clk 0.5 [get_ports in1] set_input_delay -clock clk 0.5 [get_ports in2] set_input_delay -clock clk 0.5 [get_ports in3]