相关阅读
SDC命令详解https://blog.csdn.net/weixin_45791458/category_12931432.html
Tcl(Tool Command Language)最初是一种用于编写脚本的编程语言,广泛用于电子设计自动化(EDA)工具中,如Cadence的Virtuoso、Synopsys的Design Compiler等。SDC(Synopsys Design Constraints)是一种定义电路设计约束的格式,它用于确保电子设计在时序方面满足规定的要求,由Synopsys基于Tcl命令拓展而来。下面分类给出了所有的SDC命令(以2024年推出的最新版本2.2为例)。
通用
| 命令 | 主要作用 | 文章链接 |
| current_instance | 设置当前实例 | SDC命令详解:使用相对路径访问设计对象(current_instance命令) |
| current_design | 设置当前设计 | SDC命令详解:使用current_design命令设置当前设计 |
| expr | 表达式求值 | |
| list | 创建列表 | |
| set_hierarchy_separator | 设置层次分隔符 | |
| set_units | 设置单位 |
设计查询
| 命令 | 主要作用 | 文章链接 |
| all_clocks | 返回设计中的所有时钟对象 | SDC命令详解:使用all_clocks命令进行查询 |
| all_inputs | 返回设计中所有输入和输入输出端口 | SDC命令详解:使用all_inputs命令进行查询 |
| all_outputs | 返回设计中所有输出和输入输出端口 | SDC命令详解:使用all_outputs命令进行查询 |
| all_registers | 返回设计中的所有触发器 | SDC命令详解:使用all_registers命令进行查询 |
| get_cells | 返回设计中的特定单元 | SDC命令详解:使用get_cells命令进行查询 |
| get_clocks | 返回设计中的特定时钟 | SDC命令详解:使用get_clocks命令进行查询 |
| get_lib_cells | 返回库单元 | SDC命令详解:使用get_lib_cells命令进行查询 |
| get_lib_pins | 返回库单元引脚 | SDC命令详解:使用get_lib_pins命令进行查询 |
| get_libs | 返回库 | SDC命令详解:使用get_libs命令进行查询 |
| get_nets | 返回设计中的线网 | SDC命令详解:使用get_nets命令进行查询 |
| get_pins | 返回设计中的特定引脚 | SDC命令详解:使用get_pins命令进行查询 |
| get_ports | 返回设计中的特定端口 | SDC命令详解:使用get_ports命令进行查询 |
时序约束
| 命令 | 主要作用 | 文章链接 |
| create_clock | 创建时钟对象 | SDC命令详解:使用create_clock命令进行约束 |
| create_generated_clock | 创建生成时钟对象 | SDC命令详解:使用create_generated_clock命令进行约束(上) |
| group_path | 设置时序路径组 | |
| set_clock_gating_check | 设置门控时钟检查 | |
| set_clock_groups | 创建时钟组 | |
| set_clock_jitter | 设置时钟抖动值 | SDC命令详解:使用set_clock_jitter命令进行约束 |
| set_clock_latency | 设置时钟延迟 | SDC命令详解:使用set_clock_latency命令进行约束 |
| set_clock_transition | 设置时钟转换时间 | SDC命令详解:使用set_clock_transition命令进行约束 |
| set_clock_uncertainty | 设置时钟不确定性 | SDC命令详解:使用set_clock_uncertainty命令进行约束 |
| set_data_check | 设置数据到数据检查 | |
| set_disable_timing | 设置打断时间弧 | SDC命令详解:使用set_disable_timing命令进行约束 |
| set_false_path | 设置虚假路径 | SDC命令详解:使用set_fasle_path命令进行约束 |
| set_ideal_latency | 设置理想网络延迟 | SDC命令详解:使用set_ideal_latency命令进行约束 |
| set_ideal_network | 设置理想网络 | SDC命令详解:使用set_ideal_network命令进行约束 |
| set_ideal_transition | 设置理想转换时间 | |
| set_input_delay | 设置输入延迟 | SDC命令详解:使用set_input_delay命令进行约束 |
| set_max_delay | 设置最大延迟 | |
| set_max_time_borrow | 设置最大借用时间 | |
| set_min_delay | 设置最小延迟 | |
| set_min_pulse_width | 设置最小脉冲宽度 | SDC命令详解:使用set_min_pulse_width命令进行约束 |
| set_multicycle_path | 设置多周期路径 | SDC命令详解:使用set_multicycle_path命令进行约束 |
| set_output_delay | 设置输出延迟 | SDC命令详解:使用set_output_delay命令进行约束 |
| set_propagated_clock | 设置传播时钟 | SDC命令详解:使用set_propagated_clock命令进行约束 |
| set_sense | 设置极性 | SDC命令详解:使用set_sense命令进行约束 |
环境约束
| 命令 | 主要作用 | 文章链接 |
| set_case_analysis | 设置模式分析 | SDC命令详解:使用set_case_analysis命令进行约束 |
| set_drive | 设置端口驱动电阻 | SDC命令详解:使用set_drive命令进行约束 |
| set_drive_cell | 设置端口驱动单元 | SDC命令详解:使用set_driving_cell命令进行约束 |
| set_fanout_load | 设置扇出负载 | SDC命令详解:使用set_fanout_load命令进行约束 |
| set_input_transition | 设置输入转换时间 | SDC命令详解:使用set_input_transition命令进行约束 |
| set_load | 设置负载电容 | SDC命令详解:使用set_load命令进行约束 |
| set_logic_dc | 设置端口不关心 | SDC命令详解:使用set_logic_dc命令进行约束 |
| set_logic_one | 设置端口逻辑1 | SDC命令详解:使用set_logic_one命令进行约束 |
| set_logic_zero | 设置端口逻辑0 | SDC命令详解:使用set_logic_zero命令进行约束 |
| set_max_area | 设置最大面积 | SDC命令详解:使用set_max_area命令进行约束 |
| set_max_capacitance | 设置最大电容 | SDC命令详解:使用set_max_capacitance命令进行约束 |
| set_max_fanout | 设置最大扇出负载 | SDC命令详解:使用set_max_fanout命令进行约束 |
| set_max_transition | 设置最大转换时间 | SDC命令详解:使用set_max_transition命令进行约束 |
| set_min_capacitance | 设置最小电容 | SDC命令详解:使用set_min_capacitance命令进行约束 |
| set_operating_conditions | 设置工作环境 | SDC命令详解:使用set_operating_conditions命令进行约束(bc_wc模式和on_chip_variation模式) |
| set_port_fanout_number | 设置端口扇出数 | SDC命令详解:使用set_port_fanout_number命令进行约束 |
| set_resistance | 设置负载电阻 | |
| set_timing_derate | 设置时序降额 | SDC命令详解:使用set_timing_derate命令进行约束 |
| set_voltage | 设置电压值 | |
| set_wire_load_min_block_size | 设置线负载最小模块大小 | |
| set_wire_load_mode | 设置线负载模式 | SDC命令详解:使用set_wire_load_mode命令进行约束 |
| set_wire_load_model | 设置线负载模型 | SDC命令详解:使用set_wire_load_model命令进行约束 |
| set_wire_load_selection_group | 设置线负载模型选择组 |
多电压和功耗优化约束
| 命令 | 主要作用 | 文章链接 |
| create_voltage_area | 创建电压域 | |
| set_level_shifter_strategy | 设置电平转换器策略 | 几乎废弃 |
| set_level_shifter_threshold | 设置电平转换器阈值 | 几乎废弃 |
| set_max_dynamic_power | 设置最大动态功耗 | 已废弃 |
| set_max_leakage_power | 设置最大漏电功耗 | 已废弃 |