Type | command |
Unit | set_unit |
System interface |
set_driving_cell set_input_transition set_load |
Design rule |
set_max_fanout set_max_transition set_min_capacitance |
Timing constraint |
create_generated_clock group_path set_clock_gating_check set_clock_groups set_clock_latency set_clock_sense set_clock_transition set_clock_uncertainty set_data_check set_disable_timing set_input_delay set_output_delay |
Timing exceptions |
set_max_delay set_min_delay set_multicycle_path |
Logic assignments |
|
综合工程师,要对每一条SDC 的设置方式跟设置目的都十分清晰:
-
unit 是可选的,如果没有设置unit 大部分工具会从读入的第一个libary 中抽取对应的unit. -
Driving cell 通常会选一个不大不小的buffer 比如X4 的buffer. load 如果有经验值就用经验值,如果没有可参考不大不小buffer 的输入pin Cap. -
Design rule 按照代工厂给的signoff 要求设置即可。 -
Timing Constraint 是关键部分,要清楚每个clock 定义对应的电路结构,要清楚所有clock 之间的关系, 要能根据clock 的定义大致抽出clock 结构,要明确uncertainty 需要覆盖哪些因素,要能根据当前flow 调整对应的过约策略,要明确设计中有哪些combinational 的cell 需要做gating check, 要明确哪些逻辑需要做data check, 要明确哪些timing arc 需要disable 掉,要明确input delay 跟output delay 设成多少才『恰当』。 -
Timing exception 跟设计本身息息相关,如果设计中有exception 一定要跟designer 反复确认,要勇于质疑。其中,multicycle 尤其要特别注意,在电路中一定要有对应的『计数逻辑』才可以设,设了setup 的multicycle 要知道如何设置hold 的multicycle. -
set_case_analysis 通常用于工作模式的选择,要明确每种模式下能disable 掉和不能disable 掉的逻辑。