||
一些常用的SDC约束命令:
命令格式:
create_clock
-period <period value>
[-name <clock name>]
[-waveform <edge list>]
[-add]
<targets>例子:create_clock –period 10 –waveform { 0 5 } clk
注意:使用这个命令创建的时钟默认条件下的source latency为0.
命令格式:
create_generated_clock
[-name <clock name>]
-source <master pin>
[-edges <edge list>]
[-edge_shift <shift list>]
[-divide_by <factor>]
[-multiply_by <factor>]
[-duty_cycle <percent>]
[-add]
[-invert]
[-master_clock <clock>]
[-phase <phase>]
[-offset <offset>]
<targets>例子:create_generated_clock -source [get_ports clk] -edges {1 3 5 } [get_registers clkdivA|clkreg]
命令格式:
create_generated_clock
[-name <clock name>]
-source <master pin>
[-edges <edge list>]
[-edge_shift <shift list>]
[-divide_by <factor>]
[-multiply_by <factor>]
[-duty_cycle <percent>]
[-add]
[-invert]
[-master_clock <clock>]
[-phase <phase>]
[-offset <offset>]例子:create_clock -period 10 -name virt_clk -waveform { 0 5 }
注意:可以对虚拟时钟使用set_input_delay与set_output_delay命令.
例子:
create_clock –period 10 –name clock_primary –waveform { 0 5 } [get_ports clk]
create_clock –period 15 –name clock_secondary –waveform { 0 7.5 } [get_ports clk] -add
命令格式:
derive_clocks
[-period <period value>]
[-waveform <edge list>]注意:此命令不为PLLs的输出创建时钟;最终的时序分析不推荐使用此命令.
命令格式:
derive_pll_clocks
[-use_tan_name]注意:derive_pll_clocks是调用create_generated_clock命令为PLL创建时钟的,发布这个命令之前或之后必须为PLL输入创建一个基础时钟,如果没有这个时钟,会有如下警报。
Warning: The master clock for this clock assignment could not be derived.
Clock: <name of PLL output clock pin name> was not created.
derive_clocks -period 1
只有当所有的同步单元都没有时钟约束是,这个默认的命令才会起作用。
命令格式:
set_clock_latency
-source
[-clock <clock_list>]
[-rise | -fall]
[-late | -early]
<delay>
<targets>
命令格式:
set_clock_uncertainty
[-rise_from <rise from clock> | -fall_from <fall from clock> |
-from <from clock>]
[-rise_to <rise to clock> | -fall_to <fall to clock> | -to <to clock>]
[-setup | -hold]
<value>