<.synopsys_dc.setup example>

set search_path "$search_path libs cons .."
set target_library tcbn65lpvtwc.db
set link_library "* tcbn65lpvtwc.db"
set symbol_library tcbn65lplvt.sdb
alias rc "report_constraint -all_violators"

Synopsys Design Compiler를 사용하기 위한 실행 프로그램인 dc_shell-t (또는 design_vision)을 실행하면 Design Compiler는 .synopsys_dc.setup파일에 명시된 항목을 먼저 실행한다.

이 .synopsys_dc.setup 파일은 위치에 따라 그 우선순위가 다르다.
우선순위는 다음과 같다.
<.synopsys_dc.setup 파일의 우선순위>

우선순위1. Design Compiler를 실행하는 디렉토리내의 .synopsys_dc.setup
우선순위2. 자신의 홈 디렉토리내의 .synopsys_dc.setup
우선순위3. $SYNOPSYS/admin/setup내의 .synopsys_dc.setup

즉, 만약 자신의 홈 디렉토리에도 .synopsys_dc.setup파일이 있고, 지금 Design Compiler를 시작하는 디렉토리 내에도 .synopsys_dc.setup 파일이 있는 경우에는 Design Compiler를 시작하는 디렉토리 내에 있는 .synopsys_dc.setup파일을 수행한다.


그럼 이제 각각의 구문에 대해서 살펴보도록 하자.
1. set search_path "$search_path libs cons .."
이 구문에서 search_path로 지정하는 디렉토리내의 파일의 경우 이 구문 이후에서의 파일 referencing 때 디렉토리 path를 지정해주지 않아도 된다.
Design Compiler의 경우 기본적으로 포함하는 search_path가 존재하기 때문에, 위와 같이 search_path를 설정할 때 $search_path를 포함하는 것이 좋으며, 위와 같이 설정해줄 경우 search_path는 현재 search_path로 설정되어 있는 path + ./libs + ./cons가 된다.

2. set target_library tcbn65lpvtwc.db
Target library를 설정해주는 구문이다. Desgin Compiler는 compile 시 여기서 설정한 target library내에 있는 standard cell을 사용하여 synthesis를 한다. 이 library는 보통 foundary에서 제공하는 library로 설정이 된다.

3. set link_library "* tcbn65lpvtwc.db"

Link library를 설정해주는 구문이다. 이 link library에 대해 자세히 설명하자면 다음과 같다.
Design Compiler를 이용하여 synthesis하는 과정은 크게 read_verilog - link - compile 세 단계로 나뉜다 
Design Compiler가 RTL을 읽고 link를 하게되면, 위의 그림에서와 같이 일단 그 RTL에서 사용되는 각각의 instance를 link library내에 존재하는 reference로 resolve 한다.
Link library는 이러한 reference를 제공하여 추후 compile시에 target library로 link를 해주는 역할을 한다.

보통 link library는 computer memory 상의 GTECH(*(asterisk)로 표기), target library, macro-cell library로 주어지기 때문에 "* target_library macro_library"로 설정하는 것이 보통이다 

예를 들자면 위의 그림에서
MY_TOP module의 reference는 TOP.v에 있으므로 GTECH형식으로 computer memory (*)에,
MY_A module의 reference는 A.v에 있으므로 GTECH형식으로 computer memory (*)에,
MY_B module의 reference는 B.v에 있으므로 GTECH형식으로 computer memory (*)에,
IP_LIB_RAM의 reference는 IP.db에 있고
DECODE, ENCODE는 각각 decode.ddc, ENCODE.ddc에 있으므로 computer memory (*)에 있게된다.

4. set symbol_library tcbn65lplvt.sdb
Symbol library는 design-vision 또는 design-analyzer에서 각각의 gate에 대한 symbol을 표기하기 위한 library이다. 보통은 foundary에서 제공하고 schematic view 또는 logic view에서 gate나 module을 그릴 때 사용된다.

이쯤에서 target library, link library와 symbol library의 각각을 명확하게 구분하면 다음과 같다
<Target, Link, Symbol library>

Target library is one to which you want to implement your design in.
Link Library is for resolving the references in your design.
Symbol library is for schematic information of the gates that are present in your netlist in case you are using Design Vision.

5. alias rc "report_constraint -all_violators"
alias를 설정하는 구문이다. 즉, rc를 Design Compiler에서 입력하면 report_constraint -all_violators가 실행되게 된디ㅏ.
Posted by sunshowers
,