Synopsys® 설계 제약(SDC) 명령 set_multicycle_path사용하면 데이터가 소스 레지스터와 대상 레지스터 간에 전파될 수 있도록 대상 또는 소스 클럭과 관련하여 허용되는 클럭 주기 수를 지정할 수 있습니다. 이는 그림 1에 표시된 시나리오에 유용합니다.
그림 1은 대상 레지스터 reg2에2의 멀티사이클이 필요한 간단한 회로를 보여줍니다. 레지스터 reg2는 매 초 클럭 주기마다 해당 데이터를 래치해야 합니다.
아래의 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