ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Design Compiler 작업 흐름] 1. Library 설정
    전공/Design Compiler 2021. 4. 28. 18:43

    0. RTL 코드 개발

    1. Library 설정

    : 우리가 Gate로 합성하기 위해 해당 Gate의 동작과 Power소모, Timing등이 적혀 있는 라이브러리 파일을 지정해 주어야 한다.

     

    1) 해당 단계를 위해 알아야 할 정보

     

    Target_library : RTL 코드를 기능적으로 같은 역할을 하는 Gate로 Mapping해주는 라이브러리

    (Cell swap은 Target_library의 정보를 토대로 이루어 진다.)

     

    Link_library : Gate level로 만들어진 Instance들을 라이브러리의 Gate로 연결하는 기능을 수행하는 라이브러리

     

    Symbol_library : 말그대로, Graphic적인 Cell의 정보(Symbol)를 담고 있는 라이브러리이다. Design Compiler를 GUI로 설정할 때 필요한 옵션이다. (.sdb file)

    만약 사용자가 합성된 회로도를 눈으로 보고 싶다면, 해당 라이브러리를 추가하여야 한다. 

     

    DesignWare_library : IP들을 모아 놓은 라이브러리이다. 명령어는 "synthetic_library"이다.

     

    Wire_load_model : Wire에 존재하는 Delay 성분(RC 기생성분에 인한)을 써놓은 라이브러리이다. Wire의 단위 길이당 면적, 캐패시턴스 및 저항에 대한 계수가 포함되어 있으며, 총 길이를 추정하기 위해서 팬아웃 길이 Table도 존재한다.

    기본적으로 공급사가 주는 Wire load model도 존재하지만, Layout 이후에 사용자가 추출하는 방법으로도 얻을 수 있다.

     

     

    PS. Target library 파일과 Link_library파일의 확장자는 .db이다.

    .db 파일과 .lib 파일의 내용은 서로 같지만, Design Compiler에 사용할 수 있는 Format은 .db이므로, 우리가 가진 라이브러리 파일이 .lib 밖에 없다면 Design Compiler 작업 수행을 위해 Library Compiler를 이용하여 변환해주어야 한다.

    (.lib -> .db)

    2) 해당 단계를 수행하는 Design Compiler 명령어 (Code)

     

    set target "라이브러리 파일의 경로/라이브러리 파일 이름.db"

    set link "* $target"

    set link_library $link

    set target_library $target

    set symbol_library {}

    set wire_library_file {}

    setset wire_library_file {}
    set wire_library {}
    set wire_load_model ""
    set wire_load_mode enclosed

     

     

    PS. Symbol과 Wire_library는 포함하지 않고 Gate-level로 합성하였다.

    혹시 wire_load_mode에 대해서 궁금하다면, Manual의 141페이지를 살펴보면 된다.

    댓글

Designed by Tistory.