采用 Synopsys 设计约束 (SDC) 命令 create_generated_clock ,您可以建立任意数量以及任意深度的生成时钟。这在以下情况时非常有用 ( 参见图 1 和图 2) 。
在图 1 的简单电路中,寄存器 div2reg 输出需要一个生成时钟。
图1.2 分频生成时钟
下面的 SDC 命令对上面电路的时钟进行约束。
#Constrain the base clock
create_clock -add -period 10.000 \
-waveform { 0.000 5.000 } \
-name clock_name \
[get_ports clock]
#Constrain the divide by 2 register clock
create_generated_clock -add -source clock \
-name div2clock \
-divide_by 2 \
-master_clock clock_name \
[get_pins div2reg|regout]
下载电路实例create_generated_clock_ex1.qar 。
在图2的简单电路中,寄存器 div2reg 输出需要一个生成时钟。
图2. PLL生成时钟
下面的 SDC 命令对上面电路的时钟进行约束。
#Constrain the base clock
create_clock -add -period 10.000 \
-waveform { 0.000 5.000 } \
-name clock_name \
[get_ports clock]
#Constrain the output clock clock
create_generated_clock -add -source PLL_inst|INCLK[0] \
-name PLL_inst|CLK[1] \
-multiply_by 2 \
-master_clock clock_name \
[get_pins PLL_inst|CLK[1]]
