ASIC/SDC

SDC란 무엇인가?

레드카펫777 2023. 6. 29. 17:21
반응형

Full name은 "Synopsys Design Constraints" 입니다.

 

SDC의 format을 "Synopsys" 라는 EDA tool 회사에서 만들었습니다.

(EDA (Electrobic Design Automation)는 전자 분야의 CAD. ECAD (Electronic Computer Aided Design)라고도 불렸습니다.)

그래서, SDC의 "S"가 "Synopsys"를 의미합니다.

 

SDC는 주로 EDA tool에서 사용되는 Tcl base의 언어입니다.

Synopsys 사의 synthesis tool인 "Design Compiler", auto layout tool인 "IC Compiler I(or II)", timing sign-off tool인 "PrimeTime"에서 사용됩니다. 물론 Synopsys 사에서 만든 format이니 Synopsys 사 tool에서만 사용된다? 그것은 아닙니다. Cadence 사의 tool이나 Siemens (이전 Mentor Grphics 社) 사의 tool 또한 SDC를 적용할 수 있게 하고 있습니다.

 

SDC는 다음과 같이 분류되어 있습니다.

Operating conditions, Wire load models, System interface, Design rule constraints, Timing constraints, Timing exceptions, Area constraints, Logic assignments(, Multivoltage and power optimization constraints)

 

기본적으로 SDC는 4가지 type의 정보를 가지고 있습니다.

(Tool에서 SDC를 추출하면 기본적으로 "SDC version" 및 "SDC units" 기본적으로 추출됩니다.)

1. SDC version (옵션)

2. SDC units (옵션)

3. Design Constraints

4. Comments (옵션)

 

1. SDC version :

SDC는 지금까지 1.1 / 1.2 / 1.3 / 1.4 / 1.5 / 1.6 / 1.7 / 1.8 / 1.9 / 2.0 / 2.1 발행이 되었습니다.

그만큼 계속해서 진화하고 발전하고 있다는 얘기겠지요?

SDC의 version은 다음과 같이 표기합니다.

E.g> set sdc_version 2.1

 

2. SDC units :

SDC의 unit은 SDC 파일에 표기된 "capacitance", "resistance", "time", "voltage", "current", "power"에 대한 숫자 단위를 표기하기 위함 입니다.

E.g> set_units -capacitance pF -resistance KOhm -time ns -voltage V -current mA

 

3. Design Constraints :

아래와 같은 SDC 관련 command들을 활용하여 design에 constraint를 기술할 수 있습니다.

각 command들과 관련된 내용들은 추후 각각 업데이트 예정이오니 참고 바랍니다.

Type of information Commands
Operating conditions set_operating_conditions
Wire load models set_wire_load_min_block_size
set_wire_load_mode
set_wire_load_mode
set_wire_load_model
set_wire_load_selection_group
System interface set_drive
set_driving_cell
set_fanout_load
set_input_transition
set_load
set_port_fanout_number
Design rule constraints set_max_capacitance
set_max_fanout
set_max_transition
set_min_capacitance
Timing constraints create_clock
create_generated_clock
group_path
set_clock_gating_check
set_clock_groups
set_clock_latency
set_clock_sense
set_clock_transition
set_clock_uncertainty
set_data_check
set_disable_timing
set_ideal_latency
set_ideal_network
set_ideal_transition
set_input_delay
set_output_delay
set_max_time_borrow
set_propagated_clock
set_resistance
set_timing_derate
Timing exceptions set_false_path
set_max_delay
set_min_delay
set_multicycle_path
Area constraints set_max_area
Multivoltage and power
optimization constraints
create_voltage_area
set_level_shifter_strategy
set_level_shifter_threshold
set_max_dynamic_power
set_max_leakage_power
Logic assignments set_case_analysis
set_logic_dc
set_logic_one
set_logic_zero

 

4. Comments :

SDC command  뒤에 주석으로 설명을 기술하고 싶다면,

아래와 같이 command 뒤에 세미콜론(;)으로 끝내고 "#" 표기 후 설명을 넣을 수 있습니다.

E.g > create_clock -period 10 [get_ports CLK]; # 10ns 주기를 가지는 clock 입니다.

반응형