-
Clock 명령어 및 예제 정리(.sdc)전공/Design Compiler 2021. 3. 31. 14:54
1. create_clock
: Clock을 생성해주는 명령어이다.
명령어 옵션
-name clock_name
-add
-period period_value
-waveform edge_listsource_objects
명령어 예제
(1) 실제 존재하는 포트 A에 주기 10ns, 상승하는 시간 5.0ns, 하강하는 시간 9.5ns인 Clock을 생성하고 싶을 때
create_clock -period 10 -waveform {5.0 9.5} "A"
-> 옵션은 먼저 나와도 되고, 뒤에 나와도 된다.
(2) 실제 존재하는 포트 A를 clk으로 이름 짓고, 주기 10ns, Duty cycle이 50%인 Clcok을 생성하고 싶을 때
create_clock -period 10 -name "clk" "A"
-> waveform 옵션을 사용하지 않으면, 기본 값으로 주기의 절반이 하강시간에 들어간다.
-waveform {0 5} 옵션이 생략되어 있다고 생각하면 편하다.
(3) 실제 존재하는 포트를 사용하는 것이 아니라 가상의 clk인 "B"를 (1)과 같은 조건으로 넣어주고 싶을 때
create_clock -period 10 -waveform {5.0 9.5} -name "B"
2. create_generated_clock
: Clock을 이용하여 다른 Clock을 만들어 내는 명령어이다.
명령어 옵션
-divide_by number
-source source_name
-name clock_name
명령어 예제
Clock을 1/2배로 분할하여 새로운 Clock을 넣어주고 싶을 때
D flip flop을 이용한 주파수 분주 create-generated_clock -divide 2 -source [get_ports {clk}] -name clkdiv [get_pins {DIV/q}]
3. set_clock_latency
: Clock을 정의한 Point와 실제 Clock의 Latency를 표현하는 명령어이다.
latency의 분류 명령어 옵션
-source
-late
-early
-rise
-fall
명령어 예제
(1) 사용자가 clk으로 설정한 Port와 실제 Source clk와의 Delay가 3ns 인 조건을 넣어주고 싶을 때create_clock -name SYSCLK -period 10.0 [get_ports CLK]
set_clock_latency -source 3.000 [get_clocks SYSCLK]
-> -source 옵션을 사용하지 않으면 기본적으로 Network latency 값을 지정해주는 것이 된다.
(2) "CLK1" 이라는 clk이 Source에서 부터 빠르면 0.8ns, 늦어도 0.9ns에 도달하게 하고 싶을 때
set_clock_latency 0.8 -source -early [get_clocks CLK1]
set_clock_latency 0.9 -source -late [get_clocks CLK1]
4. set_clock_uncertainty
: Clock skew를 조건으로 지정해 주는 명령어
명령어 옵션
-from from_clock
-rise_from rise_from_clock
-fall_from fall_from_clock
-to to_clock
-rise_to rise_to_clock
-fall_to fall_to_clock
-rise
-fall
-setup
-hold명령어 예제
(1) Clock에 연결된 모든 포트에 setup time 0.65ns, hold time 0.45ns 만큼의 Skew Margin을 주고 싶은 경우
set_clock_uncertainty -setup 0.65 [get_clocks CLK]
set_clock_uncertainty -hold 0.45 [get_clocks CLK]
(2) "A"와 "B" 각각의 Skew는 0.4ns, "A"에서 "B"로 가는 Skew는 1.1ns만큼의 Margin을 주고 싶은 경우
set_clock_uncertainty 0.4 -from A -to A
set_clock_uncertainty 0.4 -from B -to B
set_clock_uncertainty 1.1 -from A -to B
set_clock_uncertainty 1.1 -from B -to A5. set_clock_transition
: clock에 transition time을 지정해주고 싶을 때 사용하는 명령어
명령어 옵션
-rise
-fall
-min
-max
명령어 예제
clk의 fall transition time을 0.64ns로 지정해주고 싶은 경우
set_clock_transition 0.64 -fall [get_clocks clk]
'전공 > Design Compiler' 카테고리의 다른 글
[Design Compiler 작업 흐름] (0) 2021.04.28 Path 명령어 및 예제 정리(.sdc) (0) 2021.04.01 get_ports/get_pins/get_nets의 차이점(.sdc) (0) 2021.03.31 Timing 명령어 및 예제 정리(.sdc) (0) 2021.03.31 Synopsis Design Constraints 파일(.sdc)의 의미 (0) 2021.03.30