SDC (Synopsys Design Constraint)
SDC란 VLSI 설계에서 가장 중요한 File 중 하나입니다. 이름에서 알 수 있듯, Synopsys사에서 만든 Format입니다.
Clock에 대한 Constraint를 줍니다. 반도체는 Clock이 0 -> 1, 1 -> 0으로 동작할 때 작동합니다. SDC는 Clock이 어떻게 동작할지 제약을 주는 File입니다.
PPA (Power / Performance / AREA)에서 Performance와 관련이 있습니다. Clock Freq가 빠를수록 고성능인데요. Clock Freq를 SDC에서 지정합니다.
SDC는 각 Mode마다 존재합니다. Func, Scan, Bist 등 DFT Mode에 따른 SDC가 필요합니다.
오늘은 자주 쓰이는 SDC 구문에 대해서 설명해 보도록 하겠습니다.
create_clock
새로운 Clock을 생성.
ex) create_clock –name SCLK –period 10 –waveform { 0 5 } [ get_ports {SCLK}]
"SCLK" Port에서 주기가 10인 "SCLK" 라는 Clock을 정의
create_generate_clcok
기존의 Clock에서 새로운 Clock을 분주.
ex) create_generated_clock –name SCLK_GEN –source [get_ports {SCLK}] –divided_by 2 –add -master_clock [get_clocks {SCLK}] [get_pins {DIV_FF/Q}]
"SCLK"라는 Clock을 DIV_FF의 Q Pin을 통해 "SCLK_GEN"이라는 Clock으로 분주.
-divided_by로 FREQ를 2로 Divide.
set_false_path
지정한 Path에 대해서 Timing을 Check 하지 않음.
set_disable_timing
지정한 Point에 대해 Timing Arc를 끊음.
set_input_delay
Input Port에 연결되는 Path에 Delay 지정
set_output_delay
Output Port에 연결되는 Path에 Delay 지정
set_clock_latency
Clock의 Latency를 지정. (clock 밀고 당기기)
set_ideal_network
지정한 Point에서 Cell까지 Clock을 Ideal 하게 봄
참고로 SDC는 Timing과 직접적으로 관련이 되기 때문에 Design 초반부터 SDC가 제대로 됐는지 Check가 필요합니다.
문제가 있다면 Front Engineer와 협의하여 수정이 필요합니다. SDC Check는 필수입니다.
'VLSI' 카테고리의 다른 글
Post Mask ECO?(Metal ECO) (1) | 2024.07.22 |
---|---|
LEF와 Tech LEF의 차이? (Cell LEF, Site, Row, Track) (0) | 2024.06.23 |
Back-End(P&R) Flow (0) | 2024.05.29 |
Physical Design을 하기 위한 Input File. (0) | 2024.05.27 |
Physical Cell에 대하여 (0) | 2024.05.26 |