다음은 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 files은 DC가 실행될 때 자동적으로 읽는 파일
.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 할 때 reference를 Link 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
- Compile시 Intermediate Design files의 디렉토리 경로 설정
- Default 는 DesignCompiler가 동작하는 디렉토리
9. set_dont_use lsi_10k/IVP(lib or cell name)
- 사용하지 않을 target library나 synthetic 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 설명
- 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?
1) design rule constraints는 transition time, fanout load, capacitance와 같이 chip의 원할한 동작을 위해 foundary에서 제공하는 minimum requirement라고 생각하면 된다.
2) optimization constraints
clock의 정보, port의 timing, combinational path, maximum area 등을 여기에서 지정해준다.
6. synthesize and Optimize the design
Compile command
7. Analyze and debug the design
Synthesis
8. Save the design database
Synthesis가 끝난 design을 write 명령어를 사용하여 저장한다.
Design Compiler 실행방법
- dc_shell 을 친다음 필요한 모든 라인을 친다.
- script 파일(.tcl)을 만들고 source run.tcl 을 친다.
- UNIX(혹은 리눅스)에서 $dc_shell –f run.tcl을 친다.
'하드웨어 설계 > Design Compiler User Guide' 카테고리의 다른 글
Chapter 6 Defining the Design Environment (0) | 2012.09.02 |
---|---|
Chapter 7 Defining Design Constraints - Part 2 (0) | 2012.08.31 |
Chapter 7 Defining Design Constraints - Part 1 (0) | 2012.08.31 |
Chapter5 Working With Desings in Memory Part2 (0) | 2012.08.15 |
Chapter5 Working With Designs in Memory Part1. (0) | 2012.08.15 |
Chapter4 Working With Libraries (0) | 2012.08.09 |
Chapter3 Preparing Design Files for Synthesis. (0) | 2012.08.02 |