-
[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 enclosedPS. Symbol과 Wire_library는 포함하지 않고 Gate-level로 합성하였다.
혹시 wire_load_mode에 대해서 궁금하다면, Manual의 141페이지를 살펴보면 된다.
'전공 > Design Compiler' 카테고리의 다른 글
[Design Compiler 작업 흐름] 3. Design environment 정의 (0) 2021.04.29 [Design Compiler 작업 흐름] 2. Design 파일 읽기 (0) 2021.04.28 [Design Compiler 작업 흐름] (0) 2021.04.28 Path 명령어 및 예제 정리(.sdc) (0) 2021.04.01 get_ports/get_pins/get_nets의 차이점(.sdc) (0) 2021.03.31