采用Synopsys设计约束(SDC)命令set_multicycle_path,您可以规定相对于目的时钟或者源时钟的允许时钟周期数,使数据能够在源寄存器和目的寄存器之间正确传输。这在以下情况时非常有用。
在图1的简单电路中,目的寄存器reg2需要两个多周期。寄存器reg2应在每个时钟周期对数据进行锁存 。
图1. 寄存器至寄存器多周期通道

下面的SDC命令对上面电路的时钟进行约束。
#Constrain the base clock
create_clock -period 10.000 \
[get_ports clkin]
#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 -to [get_pins reg2|*] 2
下载电路实例multicycle_exception.qar。
