하드웨어 설계/Design Compiler User Guide

Chapter2. Design Compiler Basics

가카리 2012. 8. 2. 15:39
반응형

 다음은 SoC 합성 툴인 Synopsys의 Design Compiler User 가이드의 요약입니다.

 

 

Design Compiler User Guide_Version F-2011.09-SP2, December 2011.pdf

 

 

Basic High-Level Design Flow

 

 

Design exploration :  구체적인 디자인 목표를 위해 실제 implement Default option으로  합성 시작

Functional simulation : 원하는 기능을 수행하는지 확인

Design implementation : 실제 option을 적용시켜서 합성 시작 결과는 gate level netlist

Physical design : semeconductor vendor에서 실제 칩 디자인

 

 

DC Setup Files

 

  • Setup filesDC가 실행될 때 자동적으로  읽는 파일

       .synopsys_dc.setup

  • Possible locations(read in this order)

           1. Root setup:

           $SYNOPSYS/admin/setup/.synopsys_dc.setup

           2. Home setup:

           $HOME/.synopsys_dc.setup (optional)

           3. Local setup:

           ./.synopsys_dc.setup (optional)

  • Use to customize the work environment

 

 

.synopsys_dc.setup example

 

set search_path "$search_path libs cons .."
set target_library tcbn65lpvtwc.db

set synthetic_library “standard.sldb dw_foundation.sldb”
set link_library "* tcbn65lpvtwc.db"
set symbol_library tcbn65lplvt.sdb


define_design_lib MY_WORK –path ./WORK

#example : removing high drive inverter

set_dont_use lsi_10k/IVP

 

 

3. set search_path "$search_path libs cons .."

 

  • 구체적인 디렉토리 path를 안 쓰고 파일을  읽음.
  •  DesignCompiler  library/design .db파일을 찾을 때의 디렉토리

 

4. set target_library tcbn65lpvtwc.db

  • Target library를 설정
  •  Synthesis 과정 중 Compile시 여기서 설정한 Standard cell를 사용하여  합성

 

5. set synthetic_library standard.sldb dw_foundation.sldb

  • Library of DesignWare components
  •  dw_foundation.sldb

1) Wide variety moderate/high performance arithmetic architectures

2) FIFOs, stacks, counters, digital PLL, arbiters, priority encoders...

3) Macrocells : 8051 microcontroller, 16550 UART ....

 

 

6. set link_library tcbn65lpvtwc.db

 

 

 

 

  • Synthesis 과정 단계 중 linking 할 때 referenceLink Libraries에 연결

 

7. set symbol_library tcbn65lpvtwc.sdb

  • Symbol library design-vision에서 각각의 gate에 대한 symbol을 표기하기 위한 library
  •  보통은 foundary에서 제공하고 schematic view에서 gate module을 그릴 때 사용

 

8. define_design_lib MY_WORK path ./WORK

  • CompileIntermediate Design files의 디렉토리 경로 설정
  •  Default   DesignCompiler가 동작하는 디렉토리

 

9. set_dont_use lsi_10k/IVP(lib or cell name)

  • 사용하지 않을 target librarysynthetic library를 설정

  example)

  •  If your technology library has many drive strengths for each cell function,

  consider using set_dont_use for the highest drive strength of each cell function.

 

 

               

Basic Synthesis Flow 설명

 

 

 

 

  1. Specify librariey
  • Design Compiler가 사용 할 library를 지정
  • target library, link library, symbol library를 선언

2.   Read design

  •  User synthesis design(.v file)을 읽는 과정
  •  Design Compiler RTL, gate-level netlist 등으로 읽기 가능.

        3.   Define design environment

  • Operating condition(Process, 전압, 온도) wire load model, system interface 등을 지정

    4.   Select compile strategy

  •      top-down 방식, bottom-up 방식 또는 customized 방식 지정

 

 

5. Set design constraints


Design synthesis에 필요한 constraints를 설정

 

Constraints?


1) design rule constraints
transition time, fanout load, capacitance와 같이 chip의 원할한 동작을 위해 foundary에서 제공하는 minimum requirement라고 생각하면 된다.


2) optimization constraints는 timing, area와 같이 user optimized chip을 만들기위해 지정해야하는 constraints이다.

 

 clock의 정보, port timing, combinational path, maximum area 등을 여기에서 지정해준다.

 

6. synthesize and Optimize the design


Compile command를 사용하여 Design Compiler libraryconstaints를 기반으로 synthesis를 수행하는 단계이다
.

7. Analyze and debug the design


Synthesis가 끝나면 report를 보고 timing이나 area violators를 확인하고 debugging하는 단계이다
.

8. Save the design database


Synthesis
가 끝난 design write 명령어를 사용하여 저장한다.

 

 

Design Compiler 실행방법

  1. dc_shell 을 친다음 필요한 모든 라인을 친다.
  2. script  파일(.tcl)을 만들고 source run.tcl 을 친다.
  3. UNIX(혹은 리눅스)에서 $dc_shell –f run.tcl을 친다.