sdc 编写笔记
- sdc不用都写在一个文件里面,可以按这个格式分文件编写,最后在._all.sdc中,source其他的sdc


- 0_para 定义时钟参数信息
例如 set PERIOD_PLL_500M 2 - 1_drc 文件,
set_max_transition 0.3 [current_design]
set_max_fanout 32 [current_design]
set_clock_uncertainty -setup 0.3 [all_clocks]
set_clock_uncertainty -hold 0.2 [all_clocks]
-
2_cclk 定义时钟,create时钟
对于clk_mux生成的时钟。create_generated_clock 生成两个时钟,-source分别来自输入的两个时钟。在分组的时候,对这两个时钟设置set_clock_groups -logically_exclusive -group clka -group clkb. clka, clkb是上面generated的时钟。

还有一个-physically_exclusive选项,用于表示输入mux的两个clk不可能同时存在,一个时间段只有一个clk会启动 -
3_gclk 定义时钟分组
-
4_io_constraint.sdc 对io设置set_max_delay, set_min_delay.,set_false_path. 在设置set_max_delay和set_min_delay的时候需要成对设置。比如我只对io port a设置了set_max_delay,那么set_min_delay设置的数值默认为max_delay的数值,会放松约束。对于异步的端口时钟,set_max_delay和set_min_delay的时候,后面需要加上-ignore_clock_latency
-
5_timingexception.sdc文件中,set_disable_clock_gating_check clk_gate, 对自己插入的clk gate需要disable clk check. 对于afifo内部bin2gray 转换逻辑,ck -> D端需要设置set_max_delay。 一般设置为0.5个clk cycle
-
6_mix_single 对于不关心的port,可以设置为set_dont_touch_network
-
如果有使用dw ip,可以在生成ip的时候,write_sdc test.sdc -force语句,生成ip的sdc。
