Cadence IC61(Virtuso Schematic) 초기 Setup -1

발췌 : http://blog.naver.com/PostList.nhn?blogId=narabaljeon&categoryNo=28

1. 서론

사실 바로 Mixed로 넘어가려고 하였으나, Spectre 자체도 처음 다루시는 분들이 블로그에 많이 방문 하셔서 기초부터 시작합니다.

Tool 사용에 있어 Analog Design Flow(Full-Custom), Digital Design Flow 등이 있고 사용 Tool도 많이 차이납니다.

하지만 요세에는 Only Analog or Only Digital 보다는 Mixed Type의 SoC가 늘어가는 추세이기에 전부 다 다룰려고 합니다.

대략 Full-Custom Flow는 아래와 같습니다.

목표는 Spec으로 부터 Tape-out DB(Chip 설계 도면)을 뽑아 내는거죠.

이 장에서는 처음 Circuit Entry 들어갈때, 사용되는 Cadence의 IC61(구 OPUS, Virtuoso Schematic)를 처음 사용하기 위하여

1. 초기 환경 Setup 및 필요한 파일

2. PDK 설치(?)

3. Library 생성 및 Techfile 물리기

에 대해 설명할 것입니다.

2. 참고자료

대부분 5.1 참고자료에서

[IDEC 연구원 교육] Full-Custom 설계 Flow 교육

을 기반으로 하였으며 여기에 몇가지 추가하는 형태로 설명 드릴 예정입니다.(새로 그림 캡쳐하기 귀찮아서요)

3. 초기 Setup

1. 각종 Tool은 설치되어있다고 치고, 사용자 계정으로 로그인하여 Cadence Virtuoso를 실행시키기 위해서는 아래 4가지가 필요합니다.

.cshrc

.cdsinit

.cdsenv

cds.lib

2. ‘.cshrc’ 는 로그인시 자동 환경설정이 적용되지만 별도로 그때 그때 source 하여 별도 관리 하기도 합니다.

(Tool 버전 등 관리를 위해)

기본적으로 파일 내용은 아래와 같이 생겼습니다.

 

3. .cdsenv 는 /Virtuoso설치폴더/tools/dfII/samples/.cdsenv 에 보시면 예제 파일이 있습니다.

복사해서 쓰시면 됩니다.

각종 환경들이 정의 되어있습니다.

4. .cdsinit는 /Virtuoso설치폴더/tools/dfII/cdsuser/.cdsinit 에 예제 파일이 있는데, 마찬가지로 복사해서 쓰면 됩니다.

여기서는 각종 Custom SKILL (대표적으로 Mentor Calibre)를 작성하면 됩니다.

참고로 calibre skill code는 아래와 같습니다.(MGC_HOME 경로 주의)

 ;###################################################

;#####    CALIBRE INTERACTIVE SKILL CODE  #########

;###################################################

; check MGC_HOME

;

mgc_home=getShellEnvVar(“MGC_HOME”)

;mgc_rve_init_socket 1717

if( mgc_home!=nil && isDir(mgc_home) && isReadable(mgc_home) then

setSkillPath(append1(getSkillPath() strcat(mgc_home “/shared/pkgs/icv/tools/queryskl”)))

; Load calibre.skl or calibre.4.3.skl, not both!

; Load calibre.skl for Cadence versions 4.4 and greater

load(“calibre.skl”)

;;; Load calibre.4.3.skl for Cadence version 4.3

;;; load(“calibre.4.3.skl”)

else

  ; MGC_HOME is not set correctly. Report the problem.
     printf(“//  Calibre Error: Environment variable “)
    if( mgc_home==nil || mgc_home==”” then
        printf(“MGC_HOME is not set.”);
    else
        if( !isDir(mgc_home) then
            printf(“MGC_HOME does not point to a directory.”);
        else
            if( !isReadable(mgc_home) then
                printf(“MGC_HOME points to an unreadable directory.”);
            )
        )
    )
    printf(” Calibre Skill Interface not loaded.\n”)
    ; Display a dialog box message about load failure.
    hiDisplayAppDBox(
        ?name           ‘MGCHOMEErrorDlg
        ?dboxBanner     “Calibre Error”
        ?dboxText       “Calibre Skill Interface not loaded.”
        ?dialogType     hicErrorDialog
        ?dialogStyle    ‘modal
        ?buttonLayout   ‘Close
    )
)
printf(“Calibre!!!\n”)

5. 위엣것을 하면 virtuoso실행시 아래와 같이 바뀝니다.(올바르게 하였다면)

6. 마지막으로 cds.lib는 /Virtuoso설치폴더/tools/dfII/samples/cds.lib 에 예제 파일이 있습니다.

각종 Library path의 경로가 지정되어있습니다.

연구실에서야 예제파일을 쓰면 되지만,

같은 프로젝트를 진행하는 경우 보통 한사람이 만들고 배포하여 통일된 cds.lib 파일을 사용합니다.

서로 다른 library를 사용하고 있으면 사고 나거든요.

7. 결론적으로 아래 4개 파일만 올바르게 구비하면 끝납니다.

.cshrc

.cdsinit

.cdsenv

cds.lib

8. 추가적으로 공동작업할때에는 아래 명령어 등을 통해 버전을 필수로 확인합시다.

Cadence(Composer, Virtuoso) 버전확인 방법

터미널 창에서 virtuoso –W

Version Date 까지 확인은 virtuoso –version

Spectre(MMSIM) 버전확인 방법

터미널 창에서 spectre –W

Version Date 까지 확인은 spectre -version

Assura 버전확인 방법

터미널 창에서 assura –W

Version Date 까지 확인은 assura -version

EXT 버전 확인 방법

터미널 창에서 qrc –v

Calibre 버전확인 방법

터미널 창에서 calibre –version

서진우

슈퍼컴퓨팅 전문 기업 클루닉스/ 상무(기술이사)/ 정보시스템감리사/ 시스존 블로그 운영자

You may also like...

페이스북/트위트/구글 계정으로 댓글 가능합니다.