5. Working With designs in memory
Design Compiler chapter 5를 요약한 내용입니다.
Design Compiler User Guide_Version F-2011.09-SP2, December 2011.pdf
Design Terminology
1. Flat Design
contain no subdesigns and have only one structural level.
2. hierarchical designs
contains one or more designs as subdesigns.
hierarchical design 예제
Design Objects의 종류
design
디자인은 인스턴스, 넷, 포트 핀으로 구성되있는 것을 말한다.
REFERENCE
디자인의 라이브러리 컴포넌트이다. 단순한 로직 게이트부터 RAM 이나 CPU같은 복잡한 로직도 포함한다.
Instance or Cell
레퍼런스의 회로들을 메모리 상에 로딩된 것들이다.
각 인스턴스는 유일한 이름을 가지고있다.
Ports
디자인의 input, output
pins
셀의 input output
nets
port to pin이나 pin to each other가 연결된 wire이다.
Relationship Between Designs, Instances, and references
U1, U2, U3 는 인스턴스
NAND2 MULTIPLIER는 Reference
EXREF는 디자인
Reporting References
command report_reference -hierarchy
현재 디자인에 사용된 모든 reference를 report한다.
-hierachy옵션 적용시 hierarchy형태로 출력한다.
만약 get_references reference_name을 입력하면 reference에 대한 정보를 볼 수 있다.
Reading Designs
다음은 Design Compiler가 읽을 수 있는 포맷이다.
Using the analyze and elaborate Commands
using the analyze command
1. Reads an HDL source file.
2. Checks it for errors(without building generic logic for the design)
3. Creates HDL library objects in an HDL-independent intermediate format.
4. Stores the intermediate files in a location you define
To do this |
Use this |
Store design elements in a library other than the work library. For override |
-library By default, the analyze command stores all output in the work library. |
Specify the format of the files to be analyzed. |
-vhdl or –verilog |
Specify a list of files to be analyzed. |
file_list |
using the elaborate command
1. Translates the design into a technology-independent design (GTECH) from the intermediate files produced during analysis.
2. Allows changing of parameter values defined in the source code
3. Allows VHDL architecture selection
4. Replaces the HDL arithmetic operators in the code with DesignWare components
5. Automatically executes the link command, which resolves design references
VHDL은 Entity로 설계의 인아웃을 정의하고 실제 내용은 architecture의 부분에 기술한다.
한 개의 Entity에 여러개의 architecture가 있을 수도 있지만 1:1로 대응시키는 것이 일반적이다.
To do this |
Use this |
Specify the name of the design to be built(the design can be a Verilog module, a VHDL entity, or a VHDL configuration). |
-design_name |
Find the design in a library other than the work library(the default). |
-library |
Specify the name of the architecture. |
-architecture |
Automatically reanalyze out-of-date intermediate files if the source can be found. |
-update |
Specify a list of design parameters. |
-parameters |
using the read_file command
1. Reads several different formats
2. Performs the same operations as the analyze and elaborate commands in a single step.
3. Creates .mr and .st intermediate files for VHDL
4. Does not execute the link command automatically.
5. Does not create any intermediate files for Verilog
위처럼 link 명령어를 써줘야한다.
Design Compiler는 path_name/design.ddc파일을 만드는데 만약에 읽었던 파일을 또 한번 더 읽으면 이 ddc파일을 overwrite한다. 이게 싫다면 –sigle_file option을 주면된다.
만약에 압축된 파일일 경우 확장자가 .gz면 사용이 가능하다.
다음은 사용할 수 있는 format 리스트이다.
1. ddc. format : Uses the .ddc extention.
2. db format : Uses the .db, .sldb, .sdb, .db.gz, .sldb.gz, and .sdb.gz extensions
3. Verilog format : Uses the .v, .verilog, .v.gz, and .verilog.gz extentions
4. System Verilog : Uses the.sv, .sverilog, .sv.gz, and .sverilog.gz extentions
5. VHDL : Uses the .vhd, .vhdl, vhd.gz, and .vhdl.gz extensions
To do this |
Use this |
Specify a list of files to be read. |
file_list |
Specify the format in which a design is read. |
-format |
Store design elements in a library other than the work library(the default) when reading VHDL design descriptions. |
-library |
Read a Milkyway ILM view. (Milkyway란 Synopsys의 database) |
-ilm |
Specify that the design being read is a structural or gate-level design when reading Verilog or VHDL designs. |
-netlist –format\verilog|vhdl |
Specify that the design being read is an RTL design when reading Verilog or VHDL designs. |
-rtl –format\verilog|vhdl |
milkyway 부연 설명
Synopsys 사의 Tool을 이용하여 IC Design을 하다보면, 가장 자주 만나는 것이 바로 Milkyway Database다. Milkyway 라는 이름의 Tool이 따로 존재하고 있어서 처음에는 이 Tool을 사용하는 데이터만을 일컫는 줄 알았으나, Synopsys사의 Tool 전반에 걸쳐 사용되는 Database라고 생각하면 된다. Design Compiler, IC Compiler, Astro 등의 모든 툴에서 이러한 Milkyway Database 포맷을 사용하고 있다.
The Milkyway database is the unifying design storage format for the Synopsys Galaxy Design Platform.
IC를 Design할 때 사용되는 정보로는, Power, Ground, Clock, Signal에 대한 Routing information 및 Cell dimension, border, pin location, mask layer 등과 함께 Wire tracks, antenna, electromigration 등의 technology 정보들이 있는데 이러한 모든 physical library information을 저장하는 일종의 저장 형식.
이러한 정보들을 Cell 단위로 저장하게 되는데, Milkyway 에서는 각 Cell의 정보를 몇 가지의 다른 representation으로 나타내고 있다.
- CEL view: via, standard cell, macro, whole chip, netlist에 대한 정보를 모두 포함하고 있는 Full physical structure layout view. 모든 Milkyway library의 cell은 반드시 이 CEL view를 가지고 있다.
- FRAM view: abstract representation. P&R(Placement and routing)할 때 사용되는 view. 따라서 외부에서 바라보는 정보만 가지고 있으면 되는데, metal blockage, allowed via area, pin에 대한 정보를 가지고 있다.
- ILM view: Interface logic model에 대한 정보
- FILL view: Metal fill에 대한 정보. P&R 마지막 과정에서 Metal Density Constraint를 맞추기위해 넣어지는 Metal fill layer (당연히 Logical function이 없다.)
- ERR view: Design Rule violation에 대한 정보를 담고 있는 Layer view
출처 TechMemosla의 블로그 http://thinkpiece.tistory.com
read_file 과 analyze 와 elaborate 명령어의 차이점.
read_ddc
dc_shell > read_ddc design_file.ddc
이전버젼의 소프트웨어 ddc파일은 읽는게 가능하나 이후버젼의 소프트웨어 ddc파일은 읽는게 불가능하다.
dc_shell > read_db design_file.db
db파일 또한 마찬가지이다.
메모리상에 올라온 design listing.
list_designs 명령어와 –show_file 옵션을 주면된다.
-show_file은 파일까지 표시한다. 이때 *는 현재 디자인을 의미한다.
현재 디자인 세팅
read_file로 파일 읽어오기
current_design 명령어로 탑모듈 설정
'하드웨어 설계 > 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 |
Chapter4 Working With Libraries (0) | 2012.08.09 |
Chapter3 Preparing Design Files for Synthesis. (0) | 2012.08.02 |
Chapter2. Design Compiler Basics (0) | 2012.08.02 |