Synopsys® Design Constraint (SDC) コマンド set_multicycle_path では、ソースレジスターとデスティネーションレジスターの間でデータが伝搬する際に、デスティネーションクロックまたはソースクロックを基準にして、許容できるクロックサイクル数を指定できます。これは、図 1 のシナリオで役立ちます。
図1は、デスティネーションレジスター reg2 に 2 のマルチサイクルが必要なシンプルな回路です。レジスター reg2 は、2 クロックサイクルごとにそのデータをラッチします。
下記の SDC コマンドは、上記回路内のクロックを制約します。
#Constrain the base clock
create_clock -period 10.000 [get_ports clk_in]
#Constrain the PLL output clock
create_generated_clock -source inst|inclk[0] -multiply_by 2 \
-name inst|clk[1] inst|clk[1]
#Constrain the input and output ports
set_input_delay -clock clk_in 1.2 [get_ports data_in]
set_input_delay -clock clk_in 1.5 [get_ports async_rst]
set_output_delay -clock clk_in 2 [get_ports data_out]
#Apply a multicycle of 2 to registers reg1 and reg2
#By default the multicycle is relative to the destination clock waveform
set_multicycle_path -setup -end -from [get_pins reg1|clk] -to [get_pins reg2|*] 2